Fixes#1683
Fix for dropdowns with option not being an object crashes dropdown and stops eval
Fixes#1656#1657
Fix issue where updateWidgetProperty would get called without a widgetId
- Adds Web workers and does evaluations in off the main thread
- Removes any need to store functions in the data tree and only keeps them around while evaluating
- Maintains a stored data tree in the redux state
- Evaluates based on editor events instead of state changes