Docopt port

Work in progress, not to merge yet. Will resolve #12. Based on my other PR.

@titanous would you care to review this? There's a couple of changes, the controller client is instantiated for each command, as it doesn't use the Command struct anymore. I've also commented out the updater inside of `main` for now, and I think [this](https://github.com/archSeer/flynn-cli/blob/3454936876212ed131d6196b0590ced25388e152/main.go#L204-L217) could be done with a hashmap -- although if we decide on using very little top-level commands, it might work just fine.

A couple of things to note: "flynn help <command>" is pre-processed to "flynn <command> --help", which is why I am passing trough the modified argv (`docopt.Parse(usage, argv, true, "", false)`) instead of using the script one (`docopt.Parse(usage, nil, true, "", false)`). Command parsing is done "recursively", first it checks the general validity inside `main` and then it checks it again for the specified command inside the specific `run` command (which is why every method calls `docopt.Parse`).

Also, `flynn help <command>` will work, but `flynn help` does not map to `flynn --help` yet, and will panic.
I'd probably prefer `flynn create`, as it feels more expressive. If nothing else, it makes sense to me to distance it from `app` commands as those operate exclusively with the controller, while this one has the side effect of changing current directory's git remotes.

That said, if it makes more sense to rename it, we can still do so, and possibly create an alias, yes.