Type casting values

Pulling in the work done by @dennismonsewicz to make typecasting work when parsing. I decided to make it non-optional - the gem will just typecast whenever it can.

closes #22 
closes #23