Start work on IndexedRDD interface
Fix a bug
Make sure to specialize everywhere
Fix SPARK-2011 on IndexedRDD
Add IndexedRDDBenchmark
Set numPartitions properly
Avoid integer overflow in benchmark
Force puts
Only force once
Compare against vanilla RDD in IndexedRDDBenchmark
Use count as well as foreach to demonstrate effect of boxing
Switch to Vector as a purely functional value store
Implement multiget
Only run tasks on partition with requested keys
Implement get in terms of multiget
Implement multiput
Implement put and fix mutation bug in multiput
Fix a bug
Even when indexes are different, zip optimistically with fallback

Also, switch the argument order of diff so it keeps values from the left
side (`self`). This is consistent with all the other operations.
Add scaling microbenchmarks for get and put