Created commands.py as a python command api
Added plugins

Very simple, and only two hooks so far ("pre-build" and "post-build",
but works without much hassle).
Changed CLI to always make target an optional arg

Omiting always means 'use the default target'.

Also, minor corrections along the way.
Restructured CLI
Some cleanups
More cleanups
Added 'dependency remove'
First steps to adding option handling

Lots of cleanups and a bit of restructuring on the way.