Naive impl of "selected" function in expression editor
Refactor: generic expression parse/construct
Set "selected" operator on drop multi-select
Fail to advanced editor on wrong number of args

This could happen if the user typed an expression like `selected(/data/things, 'thing1', 'thing2')` (which incidentally may not be a valid function call). Previously the third argument would have been silently discarded.
Do not use "selected" function on single-select

The Select mug extends the MSelect, and it inherited its defaultOperator. This fix overrides that default.
Merge pull request #189 from dimagi/104232-selected-function

Add "has selected value" operation to simple expression builder
Group all unknown reference errors
Show all error messages

...instead of only the last one in the list. Adjusted CSS to prevent a huge error message from flooding the screen and making it impossible to access the close button (x) on the error message.
Fix the group-move bug

References to group's children were not being updated. A new updatePaths() method was added because the updatePath() method clobbered the LogicManager's internal state while updating the first path:

setMugPropertyValue
    -> property-changed event
    -> LogicManager.updateReferences(mug, propertyPath)
    -> LogicManager.all items for mug are cleared,
      and new items added, but paths are now invalid so ref === ""