New CLI runner

I've completely refactored out `commander`. All commands are running on the new promise-based CLI runner. Look good @stefanpenner?