`reload` should fully reload attributes

`reload` is meant to put a record in the same state it would be if you
were to do `Post.find(post.id)`. This means we should fully replace the
attributes hash.
Add missing test cases for `attribute_names` instance method

There is a class method with the same name that is tested, but not the
instance method.
Merge pull request #15866 from sgrif/sg-reload-attributes

`reload` should fully reload attributes
Merge pull request #15865 from sgrif/sg-missing-test

Add missing test cases for `attribute_names` instance method
Remove unneeded `@column_types` instance variable

This was used more previously, but other uses have been removed.