Remove entities in favor of model structs

* The `queryable` macro has been replaced with `schema`, it has the same
  API but instead of generating an entity record it defines a struct
  inline in the model.
* `__entity__` functions generated have been renamed to `__schema__` and
  are generated on the model.
* `MyModel.primary_key/1` and `MyModel.primary_key/2` removed in favor of
  `Ecto.Model.primary_key/1` and `Ecto.Model.put_primary_key/2`.
* Associations are now stored directly in the field with same name
  instead of `__field__`.
* `Ecto.Validator.record/2` removed in favor of
  `Ecto.Validator.struct/2`.