Adding cornercases for set_metadata

Aggregate_set_metadata leaves users confused because it currently
does not check for duplicate key=value parameters for addition
or a missing key for deletion. All that user sees is that "metadata has been updated"
more details in bug1292572

This patch checks for above mentioned corner cases and informs users when and why
there was no change made in above corner cases

Adding better testcases also.

   Closes-Bug: #1292572

Change-Id: I820d793ac44680295df8b2a3f58a0834f7019875
Add support for security-group-default-rules

Add API & CLI support for security-group-default-rules. Security group
default rules allows users to create, delete, list, and get rules that
will be pre-populated into the Security Group "default" that is
populated in all projects on creation. This feature was intoduced in
Grizzly.

This commit also includes a small typo fix in the security_group_rules fake.

Change-Id: I6722b659934bde34bd206103f92dbd2cc42b1537
Closes-Bug: #1326941
Updated from global requirements

Change-Id: I6c2fb676276746719e982d42857e1d03a502d886
Update requirements.txt to include keystoneclient

Keystone client is required by nova client and needs to be in
requirements.txt. It is currently in test-requirements.txt but also
needs to be in install requirements.

Change Ief6cd7e752fd8c9e9157364f99e270da7faff074 introduced the
requirement for keystone client.

Change-Id: I91f58810e0511d0d4acc5bba0c0e946edf247896
Closes-Bug: 1358675
Merge "Updated from global requirements"
Merge "Adding cornercases for set_metadata"
Merge "Add support for security-group-default-rules"
Merge remote-tracking branch 'upstream/master'