Use in-memory SQLite for testing

Use the in-memory sqlite db for testing. Changes have been made to
populate data for in-memory databases differently as there are now
no longer any migrations being used to create the schema when
in-memory SQLite is used (with exception of the explicit migration
test cases). The most notible case where the creation of the schema
differs from using the migrations, is the creation of the default
domain. Typically this has been done by migration 008. The restful
test cases now properly populate the default domain explicitly if
needed.

As part of this patch to ensure extensions received the correct
schema additions, the EXTENSION_NAME property is now used in the
test case to do migrations when not utilizing in-memory SQLite.

The model for ROLE table in assignment did not properly indicate
that the name column was "unique" (as would be the case using the
migrations). This unique column identifier is needed since the
migration no longer occurs (it becomes even more important that
the models match).

To support proper testing, the revoke tests in test_v3_auth now
provide thier own load_sample_data method and re-use the already
defined admin role based upon the super() call.

Change-Id: I4cd08cdf3fa9c7b3265223d1baf6d3cf0d1c12dd