Non-zero exit status on error - this code seems a bit clumsy.
Don't need to supply dependency names by default.
Better time tracking and error handling.
Don't blow up completely if the teapot_version is unsupported - continue as if the package failed to load.
Better error messages for incompatibility and nonexistant packages.
Bumped version.