(breaking) Remove map sorting fns and specter dependency.
(breaking) Change :Ref to "Ref" in the return values of several
functions.
(breaking) Change various keyword keys to strings in the return values
of the outputs, template, tags, and transform functions.
Templates have a lot of keys that aren't valid keywords,
like "Fn::If". We previously used a mix of keywords and strings.
Now all keys are strings all the time, so users that may be
modifying the results don't have to look up which is which.
Users may still use any combination of keywords and strings in their
own code just as before.
(breaking) Add new and, not, and or functions. Deprecate fn-and, fn-not,
and fn-or.
Fix warning about the partition fn shadowing clojure.core/partition.
Add docstrings for arn, deftemplate, tags, template, and user-data.
Fix that template fn could not accept a mixture of keyword and
string keys.
Fix a number of cases where a valid map such as {"Ref":,,,} passed to a function resulted in an error. These functions could only accept strings, keywords, and symbols. This has been fixed so that they now accept any valid form.