adding specialized case insensitive dictionary datastructure

Previously, setting header keys was case-sensitive. However, due to the fact
that headers are intended to be case-insensitive this caused a bug where
multiple headers, intended to be the same header, would be set and thus not
properly sent along the wire.

This is now corrected by adding a specialized `CaseInsensitiveDict`, which is
based on Requests' datastructure of the same name. In Rauth's case we need to
overload the `update` and `setdefault` methods as well. As such these are
accounted for by calling `lower` over the keys where possible, i.e. for
`basestring` instances.

fixes #67
updating CHANGELOG
updating docstring and version 0.5.1