Nano Linux first Revisions

I have implemented some timers using timer create I hope this was the kind of timers that was intended. I also mirrored the windows and mac implementation that calls a functor that will run in the main run loop.

Please check the NanoTest TTimer.cpp fix because I am not sure if Catch can do a timeout on a test or not but this just ran forever on Linux so I needed a way to get pass to run the next tests.

I have done the XDG user directory implementations and also the preferences but I still need to get the actual company name or correct bundle identifier.