Depreciation fix

Depreciation now does math based on Year and month - completely _ignoring_ day.

It figures out the number of year-mo's since year 0 - the math looking like this:

```year*12 + (month-1)```

The month-1 thing is to make months be zero-based instead of one-based (January is 0, December is 11).

Formatting dates into that format and then subtracting gives you a 'rounded month difference' - e.g. February 1 minus january 31 is one month. February 28 minus february 1 is zero months.

I also put some error checking in around zero-length depreciation (causes a division-by-zero error otherwise), as well as non-existent deprecations themselves.

Fixes #1