Moved user-modifiable parts together.

This is to make it clear what parts are not intended for modification
and should make it easier for the user.
Added .DEFAULT_GOAL to allow custom dependency declarations at the top
Add an example custom dependency for a test.

The framework takes advantage of GNUmakefile's automatic variable $^ to
automatically include this dependency in the compilation process.
Add support for custom -l library declarations for tests.

This is done via the testname_TEST_LIBS variable.
Add an example of library declaration for a test.