Add special handling for StorageLevel.MEMORY_*_SER

We only unroll the serialized form of each partition for this case,
because the deserialized form may be much larger and may not fit in
memory.

This commit also abstracts out part of the logic of getOrCompute to
make it more readable.
Clean up BlockStore (minor)
Actually return updated blocks in putBytes

Previously we never returned the updated blocks in MemoryStore's
putBytes. This is a simple bug with a simple fix.
Address review feedback
Merge branch 'unroll-them-partitions' of github.com:andrewor14/spark into rdd-memory
Remove the special handling of MEM_*_SER, for now

This special handling causes a performance regression. In particular, it
adds an extra step of deserializing the bytes to return the iterator to
the user in getOrCompute. This may be expensive for RDDs with large
partitions.