Adding initial View interface and Marker class.

Also added PartitionStrategy#keyFor(Marker) and changed the Field
partitioners so that the source type is accessible. This is necessary
when calling Marker#getAs(name, type) with source fields.