Add missing create() method on SecurityGroupRule object

The nova.objects.SecurityGroupRule class was missing the
create() method, so we add it here, and while doing so,
ensure that the id attribute is marked as read-only.

Partial-Blueprint: compute-manager-objects-juno
Change-Id: I4584e33d9d163a7dce01b01d205f2f43824e544f
Convert v3 config drive plugin to v2.1

This patch changes v3 config drive plugin to v2.1 and makes v2
unit tests share between v2 and v2.1.

The differences between v2 and v3 are described on the wiki page
https://wiki.openstack.org/wiki/NovaAPIv2tov3.

Partially implements blueprint v2-on-v3-api

Change-Id: Ieed7619f3cb310b25d157ebb07f24468aea1af9d
Correct seconds of a day from 84400 to 86400

Correct a day to 86400 seconds which is used by API rate limit config
Closes-bug: #1357152

Change-Id: Ieceacd00f02b6ed27032cc0ac2f55be8b976a070
Remove duplicated code in test_versions

There is duplicated code in test_versions.
This patch removes it for cleanup.

Change-Id: Id8ff2147e624a89476a65c3f0ded54bdb26e53ad
Add v3 versions plugin unit test to v2

This patch adds v3 versions plugin unit test to v2 for improving
test coverage of v2 API.

Change-Id: I59dedcd31ea011d6eda7ff93d26b941334a67f51
Merge "Convert v3 config drive plugin to v2.1"
Merge "Add missing create() method on SecurityGroupRule object"
Merge "Correct seconds of a day from 84400 to 86400"
Merge "Remove duplicated code in test_versions"
Merge "Add v3 versions plugin unit test to v2"