Job mapping unit tests.

A bunch of unit tests for galaxy.jobs.mapper and galaxy.jobs.rule_helper testing various aspects of static and dynamic job mapping and the utility class (RuleHelper) that can be supplied to dynamic job rules.
Improved error handling for dynamic job destinations.

More and more verbose error messages with updated terminology and error conditions unit tested.
galaxy.job.mapper refactoring and cleanup.
Pass job_conf.xml defined destination params to dynamic job destinations.

Should allow for parameterization of rule functions.
Allow dynamic job destinations to consume UUID generated per invocation.

Should allow for grouping jobs from the same workflow together during resource allocation (a sort of poor attempt at dealing with data locality).
Allow dynamic destinations to reason about data locality at high-level...

... if only in some limitted ways. Provide ability to hash jobs by history, workflow, user, etc... and choose among various destinations semi-randomly based on that to distribute work across destinations based on these factors.

Added some stock rules and examples to job_conf.xml.sample_advanced that demonstrate using this to quickly proxy to some fixed static destinations - but the real utility here is probably using this as part of other, more flexiable dynamic job destinations.
Small optimization in galaxy.jobs.rule_helper.
Allow dynamic job destinations to more easily burst.

Add utility to RuleHelper to simplify bursting reasoning slightly, setup a stock rule for bursting between two static job destinations - mostly for demonstration purprose but it might be useful in some settings.