As 284, part 1 - find a created server on Nova (ready for review)

This change is bigger than I thought, so I am trying to break it up into bits.  This part just provides the functionality to check Nova for an exact server that matches a given server config, created around a certain time.

Question for the next part - should we wait at all after getting a 500 or 401 response back from Nova from creating a server, before checking Nova to see if a server was created? 
I'd avoid a mutable default argument here. If a caller does something like

config = _get_server_info()
config['metadata']['a'] = 1

then all future calls to _get_server_info will have 'a' = 1 in the result.