Added BigDecimal, Date, and Time types

Closes #88.

shouldn't we do the typical pattern here of:
return nil if value.nil?