Fixes Issue #4: updated to use NSDecimalNumber

- decimalYear method previously returned a double, which has rounding
issues (see Issue #4 description).
- updated it to use NSDecimalNumber for higher precision
Update testDateBounds02

- updated the test design to avoid making an assumption around the
returned value
- we now just test that after passing in a date that we know to be
beyond the model range, we are returned an earlier date
Fixes Issue #3: dateWithinModelBoundsFromDate:

- for date beyond model range, return value is now a date 1s before
model expiry time
- rounding of decimalYear in decimalYearIsWithinModelBounds: has been
updated to take advantage of updated NSDecimalNumber type (more
accurate result for dates near to end of year, e.g. 11:59pm Dec 31 2015)