Merge pull request #2 from jcelliott/master

Marshal and Unmarshal semver strings, not objects
Implement (Un)MarshalText instead of (Un)MarshalJSON

- semver is a string protocol, not a JSON one, and encoding/json happens
  to use encoding.Text(Un)Marshaler internally
MarshalText doesn't need pointer receiver
Allow optional v prefix; gofmt
Add shims to support encoding/json pre-Go1.2
Add documentation, remove Semver field, gofmt
Allow for json unmarshalling

- shim for backwards compat