Implement writeObjectIdentifierAP & writeOctetStringAP
Initial implementation of writeStringAP
Implement writeCharacterStringAP

A slightly more interesting example of how to make use
of WriterT to convert an existing Writer to a new Writer.
Implement writeOctetStringAP'

Another example of using contravariants to implement a useful
Writer from an existing Writer.
Add another test for writeStringAP
Refactor Tag.hs

The implementations of writeStringAPTag and writeOctetStringAP
used almost identical code to write their tags. Refactored into
writeAPTag
Add more instances of Encodable tests

Add Float, Double, OctetString tests

Refactor EncodableSpec

I had some weird function definitions, and I really didn't
understand how two of them worked. Rewrote them.

Also rewrote Arbitrary Date in Monad style using liftM
Merge pull request #7 from michaelgwelch/addWrites

Add more write implementations