Add ability to serialize a Tide to JSON

- add `json_encoding.py` module providing PytidesJson{Encoder,Decoder}
- add `serialize` and `deserialize` methods to `BaseConstituent` and
  `Tide` classes

Note that a constituent can be fully reconstructed from its name alone,
so we don't need to serialize derivative member methods like
coefficients.

For a Tide, we reconstruct the model (a numpy object) which comprises
triples of Constituent, Amplitude, Phase.