Explicit backend
Add a default_backend and start updating docs.
Fix doctests.
Use backend as keyword argument everywhere.
Document all the parameters including cross references to specific providers where appropriate.
Test that openssl is the default backend.
Use keyword argument forms everywhere.
Put some docs for default_backend in a place.
Use backend as keyword even when copying hmacs.
Fix pep8
Merge pull request #227 from dreid/explicit-backend-in-hazmat

Explicit backend
GCM support
fix buffer size bug for gcm tag fetch
gcm doc fixes
add tag as abstractproperty for modewithaad
rename NotFinalized exception to NotYetFinalized because alex is right

...it does read better that way
_AEADCipherContext refactor

* No longer extends _CipherContext
* Remove _tag from _CipherContext
* This change duplicates a small amount of code from _CipherContext
gcm doc improvements
enforce AEAD add_data before update
invalidtag exception for gcm

This exception is probably not safe. It depends on the assumption that
if ERR_get_error returns a 0 then it is an AEAD tag error.