Add http request factory for attachments.

Add a HttpRequestFactory for GET, PUT and DELETE attachment requests.
Remove Base64 encoding from PUT / GET attachments. refs #10

Base64 encoding is only required when sending attachments inline. This
commit removes any base64 encoding / decoding around attachments until
there is explicit support for inline attachments. This ensures that
attachments are handled correctly (we will not change the bytes that the
consumer adds to a request) but also means we are no longer Base64
decoding attachments when they are fetched (because this is not required).

** note that this represents a breaking change for any existing attachments which
have been stored using MyCouch and incorrectly base64 encoded **
Correctly round-trip content-type header for attachment.

Previously, the Content-Type header was not being sent correctly for PUT
attachment requests. In this commit, we ensure that this is set when
saving attachments and is also populated when attachments are fetched.

Refs #9
-Moved ContentType further down
-BytesContent for having the logic of setting Content-type as with
 StringContent.
-Virtual members
Clean.
Testdata as bytes instead.