[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.
Same as below, I think we should be able to use rspec constant stubbing to test this rather than selectively including the test on different platforms.