lua.go: interface{} marshaling
refactor extra completion provider
refactor gocode completion