Don't query the database schema when calling `serialize`

We need to decorate the types lazily. This is extracted to a separate
API, as there are other refactorings that will be able to make use of
it, and to allow unit testing the finer points more granularly.
Rename `property` to `attribute`

For consistency with https://github.com/rails/rails/pull/15557
Merge pull request #15546 from sgrif/sg-lazy-decorators

Don't query the database schema when calling `serialize`
Merge pull request #15558 from sgrif/sg-rename-property

Rename `property` to `attribute`

Conflicts:
	activerecord/lib/active_record/attribute_methods/serialization.rb
	activerecord/lib/active_record/base.rb
fix test cases after #15558 merge to master.
Merge pull request #15566 from kuldeepaggarwal/fix-build

fix test cases after #15558 merge to master.