Implementation of custom list of test tasks, and post-commands

This pull request adds:
- customization of the list of tasks/configurations to be used during the testing stage
- support for post-build and post-test commands, which can also be used to run arbitrary shell commands
- other minor cleanups
I see you're using all the fun tricks here :)