Refined construction code, updated tests

Removed constructor hack regarding prorotypes. Handled prototype creation more gracefully
with proper Object.create logic. Refined tests to ensure objects returned are actual
instances of registered objects.