Allow repeats and conditional parameters to be used via the API.

For now, still using the flat format of web ui. So

{...
 "a_repeat_0|a_repeat_param" : "value"
}

instead of the more ideal:

{...
 a_repeat: [
   { "a_repeat_param": "value" }
 ]
}

To implement this, there is a new path through the tool state processing code that sets the state based on the supplied inputs instead of requiring iterative calls (one for each repeat addition for instance). To specify this path through the code, Tool's handle_input takes a new parameter 'process_state' that defaults to 'update' for previous behavior but can be set (and is when coming from the API) to "populate" to exhibit this new behavior.

There may be reasons to iteratively call the API and build up a valid state iteratively, so the behavior of the API should potentially be configurable by param (populate versus update). (Does anything use the API in this fashion right now? Trackster param exploration? if so this should be reverted to not be the default).