Multiple field values

This is a rather substantial change to better support pulling values from index fields that have multiple values stored. (though should be non-breaking to existing implementations). Also updates the crawler to better support crawling of multi-valued fields.

Not 100% sure it's the correct approach to doing this, would definitely be open to feedback.