Support for multiple configurations and a few other items

What:  Added support for multiple configurations.
Why:  An application needs to manage multiple accounts in parallel.  The singleton configuration design prevents this.  I've made changes to Azure::Core::Configuration and classes that rely on this object to allow for both a single global configuration and configurations that can be passed into the azure api as needed.

What:  Added the ability to retrieve keys for a storage account.
Why:  An application needs to manage storage accounts without having the keys preloaded.  The keys must be retrieved via the Azure api.

What:  Included the media_link value in retrieved virtual machine images.
Why:  An application is creating virtual machines from account images.  The media_link info associated with these images contains the storage account name.  This is needed when creating the virtual machine from the image.

What:  Added ability to ignore case when retrieving virtual machines.
Why:  The Azure cloud ignores case on virtual machine and cloud service names.  You cannot create two machines named 'onevm' and 'oneVm'.  These are considered to be equivalent names.  The retrieval of a virtual machine by name should allow for the same equivalency.