Added BigDecimal, Date, and Time types

Closes #88.

why do we successfully load nil if it's not a string?...shouldn't we throw and exception?
We probably should return nil if value.nil?