Fix ordered tests #1 (use NullTestShell)

Edit: This now fixes

- Crashes in ORDERED_TEST (#337) 
- Lost test cases in ORDERED_TEST (#338) 
- Of course, itself.

1. Flawed conditionals corrected.
2. Ordered test at head inserted properly
3. List is terminated byNullTestShell consistently
4. Static member replaced by Singleton

<<<<<<
This pull request doesn't fix anything. Sorry guys.
It is EXPECTED to break the Travis build.
It is proof that TEST_ORDERED() has something very wrong with it.
And, sorry again, I have no idea what is going awry.
Unfortunately, this seems to be one of the few cases where unit tests with CppUTest did NOT catch the bug :-(