Fixes server list filtering on metadata

In order to specify filtering of returned servers based on
metadata or system metadata a key/value pair string is passed to
the API. However, the string is never converted to a separate
key/value dictionary. This results in the db failing to filter
correctly and causes a stack trace.

This change correctly converts the string values for system
metadata and metadata to dictionaries and fixes the compute api
unittests which previously erroneously assumed that the compute
api layer would be passed search opts in dict format when
required.

Change-Id: I886d5e770fe16fc2194b33c563a131b550f13f59
Closes-Bug: 1372218
Merge "Fixes server list filtering on metadata"