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.
Agreed, easier to start the discussion from code, so let's wait for @janchorowski's code. Although I'd argue that the default aggregation method should be example-wise, not batch-wise, which makes most sense for things like likelihood.

I can make a start with a developer guidelines-document.