Fix command 'shell' following the switch to argparse
Novabuild: Fixed mv command to support directory names with blanks.
Fix parsing of package arguments in the build subcommand.

The combination of nargs='+' and action='append' caused the resulting
parameter to be a list of lists while we were expecting a list of
strings.
Replace wget's -Nc with -nc

The reason is wget doesn't support -N with -O.
Add support for a configuration file.

The file must be called 'novabuild.cfg' and reside in the root directory
of the build data.
list: merge list.list_packages() into list.main()

There was no point having two methods with one of them only counting a
single line.
Simplify build() arguments.
Instanciate BuildMethod objects by giving all the CLI args.

This will allow more flexibility in the build method argument handling.
Introduce commands.build.register_build_arguments()

This is because the build method-related stuff is used at several
places.
build, prepare: add support for --arch
Rewrite version comparison to use dpkg --compare-versions

Our own comparison code was not following the debian guidelines. Also,
the way we parsed version numbers was a joke and it was basically
impossible to get the list of packages without raising an exception.
Make it possible to provide one's own revision pattern.

The debian revision pattern is now configurable. By default, it is just
'%s' so basically the Build-Number value gets appended to the version
number. This option is not really meant to be given through command
line, but can be added in the novabuild.cfg file.

So basically there is now two ways of working wrt build numbers:

  a/ using a straight number in the moduleset and configuring a pattern
  b/ using fancy build numbers staight into the moduleset
Allow specifying a different configuration according to the distro.

We also allow custom vars in a [vars] section at the top of the file.
Make the ModuleSet API similar to the ConfigParser one.
list: do not fail when the moduleset version is older than in changelog
Add support for jinja2 templates in the moduleset file.

This was mostly done to allow {% include %} statements and conditionals
relative to the distro.
Fix exception when using conditional sections only.

When you don't have the same section without a condition, the code used
to raise an exception. We now explicitely create it if needed.
Fix the way build arguments are parsed from the config file.

Previously they needed to be repeated for buildall and list, which kind
of sucked.
Build methods: use args directly.
Make it possible to render "debian files" using jinja2.

This way we can make conditional sections depending on the target distro
or using custom variables.