health: Adding SESSION support

When performing benchmark, it's pretty common to change settings between
several phases to later analyze them.

The current behavior was about uploading everything by date turning into
a difficult task to remember what host was running which setup at what
time.

To ease this, a SESSION parameter have been added. When a result is
uploaded to the usb stick or on the edeploy server, a directory is
created with the SESSION name. All the files are then located into this
dir.
quality: white space police

Removing useless spaces that could generate useless conflicts
upgrade-from: Setting dir before calling common_setup

common_setup rely on dir variable. It was setup too late and generates
weird behaviours.
common: Protecting against empty ${dir} variable

If common_setup is called without dir variable properly set, that will
kill the local system instead of patching the destination.

This was the case of some upgrade-from calls prior commit 36907a7eb8963f781c33060052afee0e95d37d6f.

This patch add a protection that stops the build process if dir variable
isn't set.
upgrade-from: Adding fake DIST

upgrade-from is using common_setup() but the DIST variable wasn't set
breaking the add_rhn_repository.

Let's add a fake value that prevent too much touching the code base and
avoid upgrade-from from failing.

I'm not 100% happy with the patch but at least it makes upgrade-from
working back.
quality: Whitespace police

Much more usless white spaces that could generate conflicts.
base: Adding logrotate & cron

A per issue #68, some packages were not installed at the right time and
got disabled.

Cron & logrotate are important packages that needs to be installed
pretty soon to avoid any service disabling.
server/uplaod.py: fix bug when an invalid range is taken for an IP range
use sphinx to build the doc
remove old doc/source dir
config/vm-debian.cmdb: put back the not expanded vm-debian.cmdb
tools: Moving grapher to tools

There is no need to keep grapher at the root directory
cardiff: Initial import

The cardiff tool is about finding commonalities and differences between
traces reported by the benchmarking tool (health-test)
cardiff: Code refactoring

Let's move many functions from cardiff.py to utils.py to get them used
by the testing tool. This make also the main program easier to read.
cardiff: Adding nosetests

Adding nosetests inside cardiff to make it more robust
cardiff: Adding memory reporting

Reporting both memory timing & population
cardiff: Sorting user output

Output that aimed to be read by users wasn't sorted making it very
difficult to read as all elements were mixed.
cardiff: Adding network & cpu reporting

No much to say, we compute here the differences between all network &
cpu configuration.
cardiff: Fixing style issue

Trivial.
cardiff: Fixing more stylish issues