_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