[CHEF-5356-gcm(2)] Encrypted data bags should use different HMAC key and include the IV in the HMAC

**Note:** issue #1590 rebased onto master, conflicts fixed.

--

Reopening issue #1504 with some fixes (alternative to issue #1474 using GCM).

https://tickets.opscode.com/browse/CHEF-5356

* Requires OpenSSL `>= 1.0.1` and ruby `>= 2`.
* Avoid testing v3 when requirements are not met.
* `DOC_CHANGES.md` updated.
* Rebased onto master.
`Decryptor` module calls `#assert_format_version_acceptable!` below. I could have avoided moving that method to `Assertions`. But I moved to have all the assertions together.