Go support

Work-in-progress pull request for golang support.