Add ToJSON/FromJSON instances for `NonEmptyMap` and `NonEmptySet`
Added the following tests:
* JSON roundtrip property test
* Unit test for trying to decode an empty object `{}` for the
`NonEmptyMap`, and an empty list `[]` for the `NonEmptySet`. These
scenarios are expected to fail with a specific error message.