Enable core API-v3 to be optional when unit testing

Long ago init_only was added to avoid load all extension during unit tests and
speed it up.
So this patch enables to *not* load all core API-v3.

Related to bp nova-v3-api

Change-Id: I6acd264ace4440724b944009dff8575df8ad3512
Add Instance.get_by_id() query method

This adds the ability to fetch instances by id (instead of just
by uuid). In order to do that, the following additional changes
were made:

1. Refactor the get_by_uuid() method to share more code, and
   also fix its use of a kwarg as a positional one
2. Add columns_to_join as a parameter to db.instance_get()

Note that #1 above required a bunch of trivial changes to the
existing instance tests for the new calling mechanism.

Related to blueprint unified-object-model

Change-Id: I83eb55c363062a3506c7f5dfa161d8072865f11d
Merge "Add Instance.get_by_id() query method"
Merge "Enable core API-v3 to be optional when unit testing"