Allow Connection.Dispose to be called more than once without failing

Motivation
----------
If Connection.Dispose is called more than once, it shoud not throw an
exception.

Modifications
-------------
Add a volatile bool field to Connection: _disposed. The field is set to
true in the Dispose method and the method now returns if that field is
true.

Result
------
If Dispose is called more than once, it will not throw an exception.

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