masher: Add a mash_dir argument that gets passed to the threads

This allows us to test the Masher and MashThreads in temporary
directories from our unit tests.
masher: Fire off a fedmsg with the updates that we're pushing

This will allow services like Taskotron to listen for these messages
and run various tests. We could then eventually block the staging of our
updates until they all pass.
masher: Create a MasherThread.init_path method
masher: Run the repo sanity checks as a part of the push process
masher: raise NotImplementedError when trying to resume pushes
masher: Tweak some of our state logging
metadata: Pass our MasherThread.path to the ExtendedMetadata
masher: Get the stage_repo method working
modifyrepo: Use the bodhi logger instead of print
tests: Get the metadata tests workin with the new repo paths
tests: Get the masher tests working with the new configurable paths
tests: Mock out some repo-related masher methods to get the tests working
ini: Update the mash path configuration
masher: clean out the mash method
masher: Pass the mash_dir to the MasherThread