Split execution into several methods and added some more.

* Added pre/post clean up methods
* Clean up options now have it's own option group
* Added a method to setup additional options
* Added a `__validate` method which validates original options and calls the `validate_options` method
* Added a `validate_options` which should when overridden validate the additional options added
* Logging is now setup on it's own method
* Added a `finalize` method which will call reporting and exit with the passed exit code.
Added `salttesting.helpers` which includes the original salt unit testing helpers.