Brick inputs and outputs are tagged with an application call

The application call can be used to e.g. include auxiliary variables, such as monitors, extra cost terms etc.

Also: fixes to graph parsing.
I think `updates` should be either attached to Apply nodes, as it was done before, or to `ApplicationCall` instances. Having `updates` in a variable tag breaks the semantics of the tag, which in my view is "properties of the variable".