Enhancement to Datatypes

Addreses: #24 and what remains of #6 

The following changes have been made to the `datatype` element of a mapping:

* **enum** has been replaced with {enum, [atom()]} where the list of atoms are possible values for the enum
* **duration** and **duration_secs** have been replaced with {duration, Unit} where unit is the unit you'd like to end up with and it's one of: f, w, d, h, m, s, ms

Also, the **enum** element of a mapping no longer does anything.

Bytesizes now default to capital letters: GB, MB, KB. lowercase, still works, but mixed case does not (because it's ugly and to avoid confusion with Mega**bit**s)