Polymorphic embedded support + test refactor + #tracked_changes and #tracked_edits methods

Hi, I've added the following features:

* Support for polymorphic embedded classes (merge of `getaroom` branch)

* Refactor of test code--tests now run in half the time (~2.5s versus ~5s). Specific changes:
   * Removing database_cleaner gem in favor of `Mongoid.purge!`
   * Use Rspec lazy-loading (`#let`)
   * Initialize classes only once.
   * Remove dependency on non-committed file `mongoid.yml` and hardcode DB collection to `mongoid_history_test`

* New methods to `Tracker`:
   * `#tracked_changes`: returns a hash in format: `{field: {to: val1, from: val2}}`
   * `#tracked_edits`: returns a hash in format:

      ```ruby
      { add: {field: val},
        remove: {field: val},
        modify: { to: val1, from: val2 },
        array: { add: [val2], remove: [val1] } }
      ```

      Note this does deep array value comparison