Add method for formatting fields for JSON output.

This adds a new annotation which allows you to specify an expression that formats a given field for JSON output.

Annotation consists of 2 fields, pkg and fmt.
The pkg field specifies a package needed in order to apply the format. A good example is the net package for turning Data fields into printable IPs.

The fmt field is a Go expression that formats the field for encoding. The field value will be available within the expression as `s` and the result is passed to the json.Encode method.

Example of use:

struct Req {
	Ip @0 :Data $Go.jsonfmt( pkg = "net", fmt = "net.IP(s).String()");
}