unittests with shared library

- add SHARED flag to posix.mak

- default to SHARED=1 on linux

- setting SHARED to a non-empty string implies PIC and
  builds a shared library for testing

- setting SHARED to an empty string builds a single
  executable for testing

- Add a moduleUnitTester that only runs a single unit test
  selected via a cmdline argument. This allows to run tests
  in parallel with a single executable/shared library.