Devoncarew completion

Some work towards exposing custom code completers for ace.dart. Some notes:

- no tests :(
- something very like this code is working for Spark
- I have a TODO: in my use of `new _EditSessionProxy._(session)` - I don't think we want to add any listeners to this session

I can polish this up, but my preference would be to have you take it over :)