* Create meaningful Exception classes. Remove "Error" exceptions

* Humanized error messages after Exception work done

* Pisi command outputs overhaul

* If possible remove context from pisi

* autoxml is hairy and not maintainable. If possible replace it with a simpler and 
  faster xml objectifier implementation.

* We need to update some state file during the pisi operation to implement a transaction
  like system. And take some actions after last failure of pisi for some reason.

* Messages in log file are not very helpful. Log messages overhaul needed. We need detailed
  logging.

* Tidy pisi.api to satisfy necessary functions

* Write a new unit test suite

* Refactor code after unit tests are finished. Divide long functions. Rename 
  necessary function and variable names (like A, B_C, D_, C) to understandable
  ones

* Add documentation to all module functions

* Performance and memory usage optimizations

* Version validator
