Change execution tasks to take config objects and add Maestro main trait...

....

1. Provides configuration objects for maestro tasks,
   so the user can specify the config once at the start
   of the job and not repeat themselves below.
2. Provides a MaestroConfig object with factory functions
   which supply default values for most upload, load,
   sqoop import/export, and hiveTable configuration parameters.
3. Provides a runner trait which can be extended to form a main
   class.
4. Moves execution tasks and related classes to exec namespace.
5. Corresponding changes to documentation, tests, and examples.

This closes #252, closes #253, fixes #223, and closes #224.
Such a guard function would be `Execution[Unit]`? It seems that `withSuccess` is essentially that guard function (the user can always ignore the return value).

So maybe the answer here is to just leave the code as it is, except for adding a better error message, and use `withSuccess` in our examples?