Improve and modularize bootstrap process

Codebot now uses a bootstrap file to kick off itself. The bootstrap
file is responsible for loading the IO driver and, when everything is
ready, call CODEBOT.init().

This approach allows Codebot to run on a variety of platforms, e.g.
web, local, etc. The IO driver is the only platform-dependent component
that Codebot needs external help to load. All other components
(plugins, etc) are loaded by Codebot itself using the IO API (which is
powered by the bootstrapped driver).