Provide info about exceptions in context.

Info about them gets saved into `context['_taskrunner']['run_failures']` and
`context['_taskrunner']['cleanup_failures']`.

Resolves #8
Moved error logging and sys.exit to bin/taskrunner

The execute() function now returns the context to make it more testable.
Fix default cleanup option
Added basic unit tests
Added context parameter to execute()

It will make it possible to test it without python 2.7 features (assert_raises
as a context manager) and concatenate multiple execute() calls.
Made tests compatible with Python 2.6

Python 2.6 doesn't have assert_raises implemented as a context manger.
Removed extra exception in examples/simple.py

I left it there by mistake.
Added option to disable timestamps in output

This option --no-timestamp provides a way how to let other tools
(like Jenkins) handle timestamping of the output.
Merge pull request #11 from queria/opt-timestamp

Added option to disable timestamps in output
Log taskrunner start/stop/end and cleanup-skipping

Log when TaskRunner starts, stops or fails.
Also log when cleanup get's skipped.

This should remove the possible confusion that sometimes,
when taskrunner is executed with clean=never or in similar
way, it's not clear from the output if execution really
finished completely or if it died somewhere (unless
the Tasks executed do log their end on their own).
Merge pull request #12 from queria/more-logs

Log taskrunner start/stop/end and cleanup-skipping
Log TaskRunner start before config opts injection
Merge pull request #13 from queria/more-logs

Log TaskRunner start before config opts injection
Merge branch 'devel'