In #36, the ability to set a short name was added via Modifiers. In #41, there is a request to make sure these short names are unique. This PR attempts to enhance short-name creation with a type decorator; while it does not prevent duplicate short names, it makes dealing with them much easier.
This PR adds a new decorator <$> ("$" signaling "S", which stands for "Short name", although it can certainly be changed if the connection to fmap is too strong) that allows the short name of a field to be specified in its type. This short name supersedes any that is set by Modifiers; this way, one can use a standard short-name modifier (say, firstLetter), and then manually replace short names of specific fields in the type. Adding <$> "" to a type removes the short name altogether.
Unfortunately, there are no type-level Chars, which means that we're forced to use type-level strings (i.e., Symbol); in this implementation, I opt to ignore all but the first character.