Refactoring. Renamed and repackaged. Aim is to get vm package to just
contain vm code and nothing else.
More refactoring and repackaging. I think the naming and shape of the
packages is more or less right now.