Simplify asVersion()

By leveraging `get_object_vars($this)`, the static property arrays are no longer necessary.  The catch is that all exportable properties in child classes must not be `private`, or must be handled in a custom `_asVersion()` method.

When tests were added or modified, only minimal happy-paths were taken.  More robust testing is still needed for complete coverage.  The exception is `StatementTest` which had it's `testAsVersion()` updated to actually test functionality.  It's now the most robust test of `AsVersionTrait::asVersion()` in the whole suite.

I welcome your feedback and look forward to helping out and working with you on this and your other libraries.
I'm somewhat torn on this change, not because I want to manually maintain a list, but because it is a nice place to point people who aren't using an autoloader for what they'll need to do. Of course I'm torn on that, because frankly if they aren't using an autoloader they ought to be. Any thoughts on that? Should we maintain the list somewhere else for documentation purposes?