First pass removing to_json_string/from_json_string.
History panel: make search input shown by default, remove toggle; List panel: make collection-panel and history-panel inherit from list-panel, move list-panel and base-mvc.list-item to mvc/list; general history and collection panel refactoring
ToolForm: Generate json for tools api, improve ui-tabs
Cleanup b0c8da2
Web helpers (${h.*}) in mako used to_json_string, now dumps.
Charts to_json_string/dumps swap.
Recreate run_functional_tests.sh as symbolic link to run_tests.sh.

It is deprecated and will be removed someday - but we should mention in it more explicitly in a dev news brief and give it a few releases. See also Peter's comments on https://bitbucket.org/galaxy/galaxy-central/commits/6b26b7df6924de890ee547f96f939fcd.
Switch to_json_string/from_json_string in galaxy/scripts.
Switch to_json_string/from_json_string in galaxy/tools.
Fix to b0c8da2: fix collapse call to curr panel in options; Browser tests: fix history selectors, misc. fixes
Final to_json_string/from_json_string elimination in tests.
Add deprecation notice for to_json_string/from_json_string.  I left these references just in case I missed something that uses them.
Merge json changes (and some cleanup) back with central.
Pull separate missing tools template out of run.mako.
If you look at the conflicting sets of parameters these templates require I think it makes more sense to separate them this way - think result is simpler. Likewise, no need to for instance show collapse/expand all buttons on page with no actual rows for steps for instance. Most important thing here though is that now one can assume that step.module and step.state are available for all steps throughout run.mako (this will lead to further simplications).
Unify API for encoding runtime state across tool and input modules.
Add some documentation.
Revert accidental replacement of symlinks w/ real file from ce088c6.  Thanks @jmchilton.
Synchronize validation of workflows between web and API controllers.

Reduces code duplication and does more correct checking of workflow step replacement parameters. More parameter checking functional tests.
Unify runtime state handling methods across tool and input modules.

The abstract interface WorkflowModule declared three methods that WorkflowToolModule didn't implement and logic for updating tool state wasn't restricted to the module itself. This introduces a new compute_state method that unifies all of that and includes some documentation.

In addition to simplifing the interface new modules must adhere this allows the elimination the switch on module type when injecting trasient state attribute into steps - moving that logic into the module itself. In my opinion this makes WorkflowModule closer to being an abstract interface - allowing components to uniformly reason about workflow modules as a black box.

These changes did require adding add_dummy_datasets to the base class - and while the input modules don't need to utilize the ability to override this - my pause module downstream did so I think it makes sense to place on the interface.
Remove some old comments.

(Let me know if these were important.)
Work toward workflow progress refactor.