Fix ordered tests #2

This fixes

- Crashes in ORDERED_TEST (#337) 
- Lost test cases in ORDERED_TEST (#338) 

1. NullTestShell removed completely.
2. Flawed conditionals corrected.
3. Ordered test at head inserted properly
4. List is terminated by zero pointer
5. Static member is missing-initialization-resistant

This should not be needed. See:
http://stackoverflow.com/questions/628526/is-short-circuiting-boolean-operators-mandated-in-c-c-and-evaluation-order
The C++ || is also short-circuit, meaning the double checks for test are not needed.