Add necessary improvements.

* **Require `active_model`.**  
  Without ActiveModel required, users would have to call `require 'active_model'` manually before being able to use `pseudo_model`.
* **Add the `activemodel` gem as a dependency in the gemspec.**  
  Without ActiveModel set as a dependency, users would have to run `gem install activemodel` manually before being able to use `pseudo_model`.
* **Add validation and conversion of the `attributes` argument for `PseudoModel::Base#initialize`.**  
  This way, if a Hash or a Hash-like object gets passed to `initialize` then everything will work okay. Otherwise, a TypeError will be raised.
* **Add `ActiveModel::Validations::Callbacks`.**  
  This adds the `before_validation`, `around_validation`, and `after_validation` methods.