Fixes #261 Squashing non-index attributes into a single mutation. This optimizes ingest and query.

This isn't quite ready for a full review- though anyone is welcome to start looking through the code. There's a ton of things that need redesigning.
Can use Collections.emptyMap() here instead of null to avoid the null check below.