Add nil check on metadata mock

The default value for metadata is nil, and this was raising NoMethodError on each_pair.
Add attachment check to detach_volume mock

If the attachment does not exist it raises a NoMethodError instead of NotFound.
Add array coalesce

If there are no entries for the server then it returns null,
but the code expects an array. Make it so.
Merge pull request #1936 from blowmage/fix-openstack-mocks

Update OpenStack Mocks