support embedded documents

Using `mongoose-encryption` on embedded documents doesn't currently work; the embedded document doesn't decrypt on `find`s.

According to [this issue](https://github.com/LearnBoost/mongoose/issues/1079) on mongoose, the pre init hook for embedded documents requires you to return the updated value, instead of calling next. To make that work, `decrypt` was also changed to be synchronous. Added new tests to cover embedded docs.


now that `decrypt` is synchronous, we can just throw the error from here instead of inspecting the value passed to the callback in the pre init hook.