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.
Are these formatting changes just caused by the IDE? They are fine, but normally I'm disinclined to accept changes just because one IDE or another decides they like their formatting best and goes around changing files just to change them.