Index.empty now requires a unit argument in many places.

The rationale is that it gives more flexibility under the hood, to
allow mutability to be used underneath (persistent hashtables) if
needed.