#4311
see prepopulateService - attempts to pre-populate the region and stage settings necessary for making a request to AWS, rejecting and dependencies thereon it runs into during that process
see the `deep` variable work. this was a knock-on effect of providing pre-population. it actually represents an obscure class of bugs where the recursive population previously in getDeepValue caused the caller not to be in charge of population choices (thus fixing for pre-population) but also caused potential deadlocks resulting from getDeepValue creating circular dependencies.
#4734
see splitByComma - a regex to do the splitting but ignore quoted commas was getting very deep and involved. Instead, identify quoted string boundaries, then identify commas (including white space around them) and take those commas not contained by quotes as the locations for splitting the given string. Trim the string as well (removing leading and trailing white space).
add sophistication to the overwrite syntax, allowing for whitespace and repetitions (for robustness)
add sophistication to the string ref syntax, allowing for use in identifying multiple quoted strings in a variable (i.e. for overwrites)
#NotCreated
fix a bug I created earlier in the branch that caused reporting to be less informative (see renderMatches)
separate PromiseTracker
move this class into its own file for the purpose of increasing testability and offering reuse
minutiae
filter the properties given to populateVariables so as to avoid attempting resolution on non-variables. Efficiency and noise reduction change. Also cleans up the code (e.g. see populateObject and its use)
cleaning of overwrite as a side effect
offer variable cleaning as a idiom
reorder the Variables.js `require`s to be in alphabetical order