remove now uses the changes construct.
remove behaviour refactored.

remove now will refuse to remove a package that is depended on by another package.
the fbc package will refuse to be removed unless it is explicitly listed.
Closes issue #3