Overhauled the handling of transformations

I switched away from having scale and offset since these only make sense for numeric
types and there is a compelling use case for booleans as well.  So instead, I swtiched
to an optional tranform property for aliases that is a string representing the
transformation to perform.

This closes #17.  But I'd like to add a few more tests beyond this.