NCBC-717: Add expiration as TimeSpan overloads

Motivation
----------
The idiomatic way for .Net developers to express a duration is via the
TimeSpan struct. In IBucket, we provide several operations that uses an
expiration duration, which is as for now passed in as an uint.

It would be an improvement to provide overloads for those methods that
would accept a TimeSpan instead of an uint for the expiration.

Modifications
-------------
Added several overloads in IBucket: each method that would take an uint
expiration now has an additional overload taking a TimeSpan instead.

Added extension method to TimeSpan to correctly convert from a
TimeSpan to a uint.

Implemented overloads in both CouchbaseBucket and MemcachedBucket, by
simply converting the TimeSpan to uint (using ext method) then calling
the original uint based overload.

Added tests for TimeSpan to uint method.

Result
------
Users can now call each method accepting a duration parameter with a
TimeSpan instead of an uint. New test passes.

Change-Id: Id4278ea6f3f67f4ea5048b3997a3139f504e484b
Reviewed-on: http://review.couchbase.org/43712
Reviewed-by: Jeffry Morris <jeffrymorris@gmail.com>
Tested-by: Simon Baslé <simon@couchbase.com>