In order to mock Subnets it needed to become Canonical
better option classes for ASG and LC
all existing tests are passing
Fix typo
ASGARD-1066 - Application Groups

A group field in the Application object allows people to mark their applications as being related in a group, for the benefit of external tools that call Asgard for application info.
minor changes based on code review
Merge pull request #378 from claymccoy/betterOptions

Better option classes for ASG and LC
More useful info and narrower columns on image list
Unit test for default user data, and bug fix to use empty strings for missing vars, not "null"
Speed up tests, add docs, remove warnings
ASGARD-1079 - Create simple user data for new AMI types

Made a new plugin interface AdvancedUserDataProvider which takes a LaunchContext instead of a three strings, so that we can add to the functionality again later without replacing the interface so many users have implemented.

The DefaultAdvancedUserDataProvider implementation simply delegates to the original three-string UserDataProvider interface, so existing Asgard admins should not notice a difference.

The new NetflixAdvancedUserDataProvider is open source as an example of the type of logic one can put into an AdvancedUserDataProvider. Netflix's Asgard configuration uses this class, but most companies would not want to use this class for anything other than inspiration.
GroovyDoc
Merge pull request #382 from joesondow/ASGARD-1066-Application-Groups

ASGARD-1066 - Application groups
Prettier test code with stripIndent
Merge pull request #385 from joesondow/ASGARD-1079-revised-user-data

ASGARD-1079 - Create simple user data for new AMI types
ASGARD-1240 - Preserve query params on all login link redirects

The "Log in to create next group" link on the cluster screen should retain any query parameters such as ?autoDeploy=on when the user gets redirected back to Asgard from OneLogin.
ASGARD-1177 - Instance types missing price info should be at bottom of instance drop-down, not top

Sometimes we display instance types in a drop-down without prices. Any time that happens, make sure the types that are missing price labels are at the bottom, not the top.
Merge pull request #389 from joesondow/ASGARD-1240-Preserve-query-params-on-login-redirect

ASGARD-1240 - Preserve query params on all login link redirects
Update related unit tests
Merge pull request #390 from joesondow/ASGARD-1177-Instance-types-missing-price-belong-at-bottom

ASGARD-1177 - Instance types missing price info should be at bottom of instance drop-down, not top
ASGARD-1241 - Application group field should be optional