Flow out to contraints
invoke providers asynchronously

this allows providers to e.g. shell out to utility programs to provide
completions.
add gocode provider
update package.json with new name; trim deps
fix off-by-one for gocode processing
add ( on autocomplete for functions