Flatten CloudSearch arguments to make commandline use easier

Adds a generic mechanism to flatten command arguments and rehydrate those values. Adds tests for this new mechanism and the CloudSearch-specific features. In the future this can be used to migrate existing flattening code (e.g. EC2 customizations).

@jamesls please review.