Fix issue when `name` store attribute is defined

No longer use class-level proxy objects to eval the block that defines
the store attributes. Use an instance per call to `store_attributes`.
Rename proxy that uses virtus

Differentiates the two kinds of proxies used: for type-casting (Virtus)
and for attribute definition
Refactor attribute proxy class into its own file and constant
Move class methods into own file
Update VERSION and CHANGELOG