Add * operator to SingletonPtr
Add * operator to SingletonPtr

Sometimes you want don't want to directly call a method on your
SingletonPtr-wrapped object, but you want to pass it to something
else.

For example

    SingletonPtr<PlatformMutex> mutex;
    mutex->lock();

is fine, but what about

    SingletonPtr<PlatformMutex> mutex;
    ScopedLock<PlatformMutex> lock(*mutex.get());

Add an overload for operator* to make this more elegant:

    SingletonPtr<PlatformMutex> mutex;
    ScopedLock<PlatformMutex> lock(*mutex);

This addition is consistent with standard C++ classes such as
`unique_ptr` and `shared_ptr`, which likewise have
get, operator-> and operator*.

kjbracey-arm/mbed,c1728p9/mbed-os,c1728p9/mbed-os,andcor02/mbed-os,mbedmicro/mbed,andcor02/mbed-os,kjbracey-arm/mbed,mbedmicro/mbed,andcor02/mbed-os,mbedmicro/mbed,andcor02/mbed-os,c1728p9/mbed-os,kjbracey-arm/mbed,kjbracey-arm/mbed,c1728p9/mbed-os,mbedmicro/mbed,c1728p9/mbed-os,mbedmicro/mbed,c1728p9/mbed-os,andcor02/mbed-os,andcor02/mbed-os