Refactor with tools and io as plugins.
Adds a "plugin loader" which actually just imports plugins.

We use this static import rather than dynamic loading because
cx-freeze seems to have problems with dynamic loading. Will solve
this later.
Don't create unneeded instances of the plugin api