many expansions for index bundles

they should really be called 'list bundles' and kv bundles should
be 'map bundles', but we already have a 'list bundle' that is
actually more like a 'linked hash map bundle' so oh well.

- no longer instances of bundles, rather they share a relatively
simple common super-type
- optimized and much cleaner serialization codec
- additional interface options that together provide a lot more
flexibility to an index bundle implementation, but still pass on
the simplicity gains of index-only mapping to downstream users