Update Spring FactoryBean to properly support isSingleton property

Motivation
----------
The current MemcachedClientFactoryBean is marked as a singleton to Spring but
does not respect the flag. It is creating a new instance with every call to
getObject(). According to the Spring Javadoc a FactoryBean marked with
isSingleton true should always return the same reference. By doing this it
will also expose an ability to safely shutdown a client instance.

Modifications
-------------
The getObject method was updated to lazy initialize the client instance if it
has not already been. The instance is now stored as a field in the FactoryBean.
A new shutdown() method was added that checks for a non-null instance and
delegates to the client shutdown() method if it exists.

Result
------
A more accurate Factory bean that respects the Spring lifecycle and provides
a safe shutdown mechanism.

Change-Id: I9ae2d71ae7d3fe899bce8ec8200e215aa987400d