unittests: use subfolders for different tests

Unittests for e.g. different libraries can be put into
`tests/unittests/tests-XXX`, where `XXX` is your test suite.

If `unittests` is made with `make all` (or any explicit argument), then
all test suites get built. If you use `make tests-XXX tests-YYY …` then
only the test suites `XXX` and `YYY` get built.
unittests: separate test suites from main.c

This change removes the need to patch the main.c if you add or remove a
test suite. A test suite in `tests/unittests/tests-XXX` needs to export
the function `void tests_XXX(void)`, which gets called by `main()`.

The `tests-XXX/Makefile` looks like your average module:
```
MODULE = tests-XXX
include $(RIOTBASE)/Makefile.base
```