Remove metadata's network-api dependence on the database

This makes the metadata server use instance.info_cache for getting
an instance's info cache instead of going direct to the network-api
(and thus, the database) for it. It also converts the network-api
implementation of get_fixed_ip_by_address() to use and return an
object. Since that translates to the same DB call in the end, none
of the network tests need to change.

Conflicts:

        nova/tests/network/test_api.py

Change-Id: Iab444b1669628604f7d96d9550eb684645c554cb
Closes-bug: #1306009
(cherry picked from commit 20d0cef99376ca622294536485a5987385a717e3)
Check for None or timestamp in availability zone api sample

test_availability_zone_detail depends on the services not having an
updated_at time set in the database.  This is set by a periodic task so
it's not guaranteed to be set, or not, shortly after the service starts.
On a fast system the test reliably passes, but adding a delay causes the
test to start failing.  Introducing a time.sleep(5) in the test seems to
make it reliably fail for me.  The test should pass if updated_at is set
to None or a timestamp.

Change-Id: I976ddf5354a52ca06a6419a92abcacb7d2379a37
Closes-bug: 1300810
(cherry picked from commit a70308a471c67386ad255e67e8971bbf96c31f18)
Merge "Remove metadata's network-api dependence on the database" into stable/icehouse
Merge "Check for None or timestamp in availability zone api sample" into stable/icehouse