Unittests use subfolders and dark magic

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
```

(rebased on #1164)