Shift test knowledge from ShellCommandRun to TestShell

This allows us to reuse ShellCommandRun in other libraries by
initialising ShellCommandRun with a vector of ShellTest
Add ShellCommandRun to libShell.a
Increase Thread::Sleep constant in TestThread 50ms -> 500ms

Virtualised platforms seemingly cannot guarantee that a thread
will be scheduled within the 50ms that we sleep for. Pick an
arbitrarily larger number for now.

The StartStop test seems to fails occasionally. The test is not
a performance test, but in this implementation, the test result
is dependent upon performance to some degree, and should be
rewritten.

The number of iterations in StartStop has been dropped to maintain
the running time of test. This too was an arbitrary number :S