Fail builds if not compiled with Gradle 2.2

Bugs closed: AURORA-941

Reviewed at https://reviews.apache.org/r/28302/
Avoid creating garbage copies of Snapshot#tasks and AssignedTask#task.

Testing Done:
./gradlew -Pq build

Suggestions on how to better test this are welcome.

Bugs closed: AURORA-930

Reviewed at https://reviews.apache.org/r/28272/
Return an iterable of frame chunks.

Stream frame chunks instead of preallocating them.

This avoids allocating an entire additional snapshot worth
of heap during entry serialization, reducing overall heap
impact of the serializer from 2*sizeof(serialized-entry) to
sizeof(serialized-entry)+chunkSize.

Further optimizations out-of-scope for this change:

* Make the returned iterator mutate a fixed-size buffer (for GC
  pressure avoidance).
* Change the log format so that FrameHeader doesn't need to know the
  size and checksum of the serialized data ahead-of-time (maybe write
  it as a trailer).

Testing Done:
./gradlew -Pq build

Bugs closed: AURORA-930

Reviewed at https://reviews.apache.org/r/28306/
Extract a cluster state abstraction from PreemptorImpl.

Bugs closed: AURORA-121

Reviewed at https://reviews.apache.org/r/28310/
Remove ReadWriteLock from MemStorage, remove Storage#weaklyConsistentRead.

Bugs closed: AURORA-929

Reviewed at https://reviews.apache.org/r/28097/