JCBC-638: Do not allow null or empty document IDs or negative expiry.

Motivation
----------
Null or empty IDs are not supported and need to be rejected immediately. Also
negative expiration times are ambiguous and should be avoided.

Modifications
-------------
This changeset adds IllegalArgumentChecks right into the AbstractDocument to make
sure invalid JsonDocument params are not passed down into the core where they
potentially cause harm.

Result
------
Better usability and stability when not supported Document constructs are
created.

Change-Id: I5dd30ae5e06f4cf97dfb37f05322ea368076d013
Reviewed-on: http://review.couchbase.org/43765
Reviewed-by: Simon Baslé <simon@couchbase.com>
Tested-by: Michael Nitschinger <michael.nitschinger@couchbase.com>