Extract PropertiesDefiner to its own file.
Move ::array_class to ActsAsModel and add ActsAsModel spec