Implements formatting of constraints according to the current Go version
supported syntax. This is achieved by delegating to go/format and extracting
out the resulting comments.
Also provides functions to query for constraint syntax support, which are
mainly intended for writing version-dependent tests.
Updates #183