Sumo package builder - 508

After a few false starts, here's how I propose arranging the rpm build scripts. It's loosely based on @itamarst 's `IStateChange` idea ...which makes the code easier to test and on what I've seen from buildbot configuration.

I'm not sure you'd call them unit tests, but I've tried to make the tests as fast and as self-contained as possible.

I've got as far as installing running `fpm` on a directory containing an installed Flocker and its dependencies, but there's still a lot of work to be done and the branch is already getting rather large (mostly due to tests). 

So I need help about:
 * how to break this up further
 * whether `fpm` is the right tool 
 * Is fpm going to allow me to create the split client / node / common RPMs that we currently produce
 * could speed things up by re-using the existing spec file and the RPM build code from https://github.com/ClusterHQ/build.clusterhq.com/blob/master/flocker_bb/builders/flocker.py

I've spent 1.5d on this so far already.

Fixes #508
Well, currently the script also allows you to install from a url, so I added the GetPackageVersion step to discover exactly which version was installed from that URL. I then need to pass the result of that steps to the following steps.

But in hindsight, I didn't really need to be able to make omnibus packages from URLs...not at this early stage anyway, so this could have been simplified as you said.

And even if we do allow installation from a URL, I was planning to parse the filename to get the version from there.

I'll leave it for now and maybe remove this in the future.