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

Actually, the problem is that `PatientData` takes one of three forms:

* a simple value of a certain type
* a map of values
* a list of values

Most, if not all, of the data that we have now is actually a map, for which the list interface is kind of useless. We could make four interfaces:

* `PatientData` which doesn't extend anything, as a generic abstract interface to be inherited by the following three
* `SimplePatientData` which has a `getValue()` method
* `NamedPatientData` which extends `Map`
* `IndexedPatientData` which extends `List`

The problem is that we would have to explicitly cast to one of these to actually use them, and having an empty interface doesn't provide us with anything useful. So, we could make it a bit more useful by adding three methods:

* `isSimpleValue`
* `isIndexed`
* `isNamed`

But this is not that good either, since it's basically a disguised switch, and switches are bad.

Or we could merge all three types of data into one, and instead of extending List, we just copy the needed methods from `Map` and `List`, and implement only the needed ones depending on which type of data we have in a controller.