Replaced ThreadToMemberFunction subclasses with ctors on Thread.

- There are only two thread classes now: Thread and ThreadWithStack<S>.
- These two classes have template ctors and init() functions that let
  you pass an object and member function pointer for the thread entry
  point.
- Part of the thread's stack is used to temporarily store the member
  function pointer until the function is invoked, so the size of the
  thread object isn't increased.
- Updated basic_test.cpp and kernel tests sources to match the change.