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 made this change because the build started failing due to a missing require (`TinCan\Attachment`).  So, while I could have just added that line, I thought it better to just require the autoloader to avoid forgetting to update this file in the future.

For those who aren't using composer, we can roll our own autoloader using a classmap with [`spl_autoload_register`](https://gist.github.com/texdc/700e46677d2b22a3ebda).  And, just add a simple conditional to prefer composer but use the custom one if necessary.