* Improve exception classes (error.*) and make throughout use of them
* Port stuff from libept:
  - dpkgpm replacement
  - opprogress handling (or rewrite?)
* Better debtags support (enrico, mornfall):
* Unified cache update mechanism
   (debtags and apt databases, possibly more?) 
* Sane marking API!
  - mark either package or version for install/remove/upgrade
  - query either package or version for action/current state
  - PackageIterator::markInstall should call candidateVersion's markInstall
  - PackageIterator::markRemove should call currentVersion's markUninstall
  - possibly add unmark* operations as counterparts to mark*? think!
  - implementation: should be implemented using APT pinning to get the desired
    effect (per-version install/uninstall etc)
  - version states to include upgradedFrom and upgradedTo and counterpart
    accessors to get the "other" version in upgrade situation
  - ensure at most one version per package can be marked for installation ;-)
  - Iterator ID's
* Implement an extended state system:
  - compare synaptic, libcapture and aptitude systems
  - write a metadata and policy draft
* Optimize:
  - make use of const refs where it makes sense
