Unittests: Refactor Volume resources tests

Changes include:
- use native HOT template with native Cinder resources for Cinder
  resources tests
- split tests in two test cases, one for AWS, another for native
  resources
- added base test case with most common boilerplate mocking

Change-Id: I9633a4b4eb0dc2403053ad9da6f34801604dbdce
AWS SecurityGroup use is_using_neutron()

Allow for better decision on what networking backend to use when working
with AWS::EC2::SecurityGroup.

Change-Id: I6c887e76d4852d298ae8537486665291739c1f99
Add subnets attribute to OS::Neutron::Port resource

Added subnets attribute to the port resource to fetch the subnet
attributes such as gateway_ip which are associated with the port.

Change-Id: Ia809c343d5b7d1488b505f9e9e20da02b36de07d
Closes-Bug: #1336656
Store properties data in database

Change-Id: Ife448fdb72f2de56107a74d47cdb64effb97e615
Implements: partial-blueprint update-failure-recovery
Refactor Resource's decision whether to update

Split the decision of whether an update is required into a separate method.

Change-Id: I838985a17ab4a5dca48a17d620729117c277c65b
Pass properties to Resource._needs_update()

When we start obtaining old property values from the database instead of
the old template, we will want to compare them separately.

Change-Id: I0b6ca33a320aa74e77991e7d0a5f9291e61fc88c
Merge "AWS SecurityGroup use is_using_neutron()"
Merge "Add subnets attribute to OS::Neutron::Port resource"
Merge "Store properties data in database"
Merge "Refactor Resource's decision whether to update"
Merge "Pass properties to Resource._needs_update()"
Merge "Unittests: Refactor Volume resources tests"