Only expose returning a single error return in Go

The golang code previously generated made for very bad go
interop becuase of the fact that a function with exceptions
had each exception be a return value. This also had the problem
that a go program could in theory return every exception which is
not how exceptions are designed.

This patch does not currently handle unknown exceptions nor
provide any validation that the exception is one of the allowed
exceptions.
go: processor exceptions are treated as one error

The changed go interface generation means that the exceptions
are now thrown as an error interface. For every exception which
is generated check if the function returned that exception type.
If the error is an unknown value then return an INTERNAL_SERVER_ERROR