TDD bugs with decomposable aggregates combined with functions/complex exprs

The issue I'm seeing:

```python
: 

Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.5.2/webapp2.py", line 570, in dispatch
    return method(*args, **kwargs)
  File "/Users/dhalperi/escience/myria-web/appengine/myria_web_main.py", line 446, in post
    self.get()
  File "/Users/dhalperi/escience/myria-web/appengine/myria_web_main.py", line 453, in get
    plan = get_logical_plan(query, language, self.app.connection)
  File "/Users/dhalperi/escience/myria-web/appengine/myria_web_main.py", line 119, in get_logical_plan
    return get_plan(query, language, 'logical', connection)
  File "/Users/dhalperi/escience/myria-web/appengine/myria_web_main.py", line 104, in get_plan
    parsed = myrial_parser.parse(query)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/myrial/parser.py", line 1013, in parse
    stmts = parser.parse(s, lexer=scanner.lexer, tracking=True)
  File "/Users/dhalperi/escience/myria-web/appengine/ply/yacc.py", line 263, in parse
    return self.parseopt(input,lexer,debug,tracking,tokenfunc)
  File "/Users/dhalperi/escience/myria-web/appengine/ply/yacc.py", line 710, in parseopt
    p.callable(pslice)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/myrial/parser.py", line 929, in p_sexpr_function_k_args
    p[0] = Parser.resolve_function(p, p[1], p[3])
  File "/Users/dhalperi/escience/myria-web/appengine/raco/myrial/parser.py", line 911, in resolve_function
    ds.remote, remote_args)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/myrial/parser.py", line 859, in resolve_stateful_func
    dict(zip(func.args, args)))
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/util.py", line 141, in resolve_function
    return convert(copy.deepcopy(func_expr))
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/util.py", line 137, in convert
    n.apply(convert)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/expression.py", line 627, in apply
    in self.when_tuples]
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/util.py", line 137, in convert
    n.apply(convert)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/expression.py", line 205, in apply
    self.left = f(self.left)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/util.py", line 137, in convert
    n.apply(convert)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/expression.py", line 205, in apply
    self.left = f(self.left)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/util.py", line 137, in convert
    n.apply(convert)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/expression.py", line 205, in apply
    self.left = f(self.left)
  File "/Users/dhalperi/escience/myria-web/appengine/raco/expression/util.py", line 137, in convert
    n.apply(convert)
AttributeError: 'LocalAggregateOutput' object has no attribute 'apply'
```