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
Does this want to be `if key is None:`? I doubt either dep or rpm have empty keys, but it seems weird to silently discard extra lines of value from an empty key, instead of erroring  or handling it.