Cleanup snapshot mr jobs

- Set BytesWritable capacity
- Do not recreate PrioritizedFactBytes
- Rename PrioritizedFactBytes to PriorityTag
- Change outputKey to BytesWritable mutating it for each key
Does this work in local mode? But in general I think this should be split out into a case class that is instantiated as a field in the mapper/reducer. Something like:
```
case class KeyState(private val keyBytes: Array[Byte]) { def populate(...) }
```

it just isolates the effect a bit more - and also make it easier to test.