Added CallOnceNoWait and CallNTimesNoWait

These classes make it easier to do a non-important operation once or n times per job. This pattern is primarily used by people who want to limit the number of messages sent to the MessageLogger.
Fixed wrong memory order

The OS X gcc4.8 compiler did not catch the fact that I passed the wrong memory order to at store method. Fortunately, the linux version did.
Merge pull request #1487 from Dr15Jones/addCallXNoWait

Multithreading fixes -- Added CallOnceNoWait and CallNTimesNoWait