Thread safe singleton

* Thread safe Singleton
* DDAxis map initialization at construction
To stop the compiler from creating this, you can now say
```Singleton(const Singleton&) = delete;```