Update gem dependencies

* Add backports as an explicit runtime dependency since this code
  makes use of 1.9 core lib features.
* Remove equalizer since it is not being used (yet).
* Add development dependencies to gemspec. While they are specified
  in the Gemfile, I prefer for runtime and development dependencies
  required to run the specs and generate docs to be in the gemspec.
Update #finalize methods to be idempotent

* The finalize methods sometimes update the type state, but once
  the type has been finalized the work should not be repeated. When
  the type has been frozen it is an indication it has been finalized.