Refactor CLI & Commands For Greater Happiness

* Commands know how to initialize themselves
* External plugins can now ship commands if they want
* Fix infinite loop when `jekyll` is run w/o arguments

Fixes #2124.