Visual query builder

Still working on:

* Docstrings/better variable names
* Precompute compatibility
* Adding a setting to disable pycode altogether
@marcua 

Currently:
```
query = {
  stream: <string>,
  steps: [<step>, <step>, ...]
}
step = {
  operation: <operation>
}

// Aggregate for example
operation = {
  operator: 'aggregate',
  operands: {
    'aggregates': [<aggregation>, ...],
    'groups': [<group>, ...],
  }
}
```

Could be:
```
query = {
  steps: [<step>, <step>, ...]
}
step = {
  operation: <operation>
}

// Make stream an operation?
operation = {
  operator: 'stream',
  operands: {
    'name': <string>,
  }
}
```