backend: add expires field

The expires field simply contains a date when the current assignment
expires to help an IP registry / administration team to keep track of
assignment, possibly removing them or renewing them when expired.

In the database the expires attribute is stored as a timestamp and since
PostgreSQL supports infinity, we use that to signify if there is no
expiration time for a prefix. Pythons datetime objects on the other hand
do not support infinity and instead we rely on None to signify
+infinity.

The basic format is thus None for infinity and a ISO8601 string for
setting a specific date, in addition there is also support (through
dateutil) to set times like "two years" which means current time + two
years.
backend: mangle new expires column

The new expires column uses infinity in the database (supported by
postgresql) but as that is not supported by Pythons datetime object we
cast infinity to None.

This is the second type of mangling we do, in addition to the existing
mangling of long numbers for the statistics. I've refactored the whole
thing a bit and moved out the mangling parts into a separate function.
CLI: add expires field
Add expires dependencies for apt package
Add expires deps to requirements.txt for nipapd

parsedatetime and pytz
Update test cases for new expires attribute
backend: add documentation for expires attribute

The expires attribute accepts a number of different formats, such as
ISO8601, None, 'never' or 'infinity' for representing positive infinity
and a fuzzy text parser for interpreting things like "tomorrow" as now+1
day.
Add test cases for expires attribute
Add dependencies for expires attribute