Correctly transform an empty key group
Preserve line information for reassignment errors

This is done by preserving the Parslet::Slice instances for each matched key and
group name until the last moment.