Lazy data structures
This change implements a LazilyUnpicklingList and LazilyUnpicklingListWithEqAndPersistentHashing data structure. These data structures lazily unpickle their contents.
The intention is to eventually use these lists to store pickled instructions in the kernel.
This change also renames LazilyUnpicklingDictionary to LazilyUnpicklingDict.
Edited by Matt Wala