"setup" option and refactor of old setup_* options

This implements the `setup` part of #206. There is now a `setup` option, which takes shell commands with Hadoop Distributed Cache-style syntax for files that you wish to have magically uploaded.

This branch includes Pull Requests #603 and #605, which means you can either kill three birds with one stone by pulling this branch, or that you can get a simpler diff by pulling those branches first.

Still to do:
 * bootstrap script
 * globs
 * documentation, including deprecation of the old options. My plan is to deprecate everything except `bootstrap_mrjob`, `upload_archive`, and `upload_file`, and provide a setup command people can use instead.

I'd also like to set `bootstrap_mrjob` to `False` by default for `local` mode. This was always a fairly pointless thing to do (if Python couldn't see `mrjob`, how were you running local mode in the first place?), and it makes our local mode tests slow to boot. Now that our setup is done in Bourne shell rather than Python, it also essentially requires you to have Bourne shell to run local mode, which seems like an unnecessary barrier for Windows users.