Issue #966: PatientData interface should have a get method that is not integer based.

So far the last option is the most attractive. My understanding of it is `PatientData` will have 3 get methods:
`T get(int index)` from `List` interface
`T get(Object key)` from `Map` interface
[Those two will clash so they can be replaced with a single `T get(K search)`]

`T get()` for `SimplePatientData`
And for each concrete class using `PatientData` only one function will be implemented, and the other will throw a `NotImplementedException`. Or `T get()` could act as `next()` does in `Iterator`.

And `SimpleNamedData` would be rewritten to be a map rather than a `List<ImmutablePair<>>`
Is that correct?