Command split: Create the Commands::Command class

This will be the superclass of all classes implementing commands.
Command split: Implement the "clone" command in a separate class
Command split: Implement the "genpatch" command in a separate class
Command split: Implement the "patch" command in a separate class
Command split: Implement the "reset" command in a separate class
Command split: Implement the "restructure" command in a separate class
Command split: Implement the "ybc" command in a separate class
Command split: Implement the "ruby" command in a separate class
Command split: Implement the "makefile" command in a separate class
Command split: Implement the "package" command in a separate class
Command split: Implement the "convert" command in a separate class
Command split: Cleanup the YastModule class
do not call make as it is not needed to make package
make storage package
Merge pull request #233 from yast/create-command-classes

[Review] Request from '' @ 'yast/ycp-killer/create-command-classes'
Merge remote-tracking branch 'origin/master' into storage_package

Conflicts:
	lib/yast_module.rb
Merge pull request #234 from yast/storage_package

Storage package
Make YastModule#{ybc_deps,ruby_deps,transitive_deps} return objects

This commit makes YastModule#{ybc_deps,ruby_deps,transitive_deps} return
YastModule objects instead of module names. This has several benefits:

  * Code using these methods is simpler as it doesn't need to look up
    the modules.

  * There are less references to |$yast_modules| scattered over the
    code (this is related to the previous point).

  * It will make topological sorting of YaST modules (something that
    will need to be implemented in order to make |yk compile all| run
    properly on a clean system) easier to do.
make "packager" compile and build
Merge pull request #236 from lslezak/packager_build

Make "packager" fully compile and build