#117, #112 - make LinearIndex use ReadOnlyCollection, dictionary lookup built lazily