Add dict and list utility functions for object typing

This adds list_of_strings_or_none() and dict_of_strings_or_none()
to objects.utils. This makes it easy to enforce things like
metadata chunks and lists of hostnames.

Related to blueprint compute-api-objects

Change-Id: Iecd40c12da81f4f69312182d619cc12d071137a1
Merge "Add dict and list utility functions for object typing"