Add a memory based shared cache

Simple dictionary based shared cache to speed up not just
a single set of nested wsdl/xsd(s) but also to share the
same cache, so when the same initial wsdl is loaded again
we still use the cached data from the previous wsdl load.
We essentially take the hit on the first wsdl load and
subsequent loads will be much faster. The cached items
expire in an hour to both clean up memory as well as
switch to newer wsdl/xsd(s) when the vCenter is upgraded
without needed a forced restart of nova compute process.

Change-Id: Ia2265f1f8ed5fe8b05770a5572f1516893b532a0