Corrected -[RAFOrderedDictionary setObject:forKey:]
Replace elementOrdering with safe update of sections and rows arrays (+animation too)

This change is twofold; the first bit, replacing the elementOrdering block with
straight array update is simply because there's no actually need for it to be a
block, so long as forms respect object identity of their fields.

The second part is much more deep and important! Previously, updating the
elements of a form midstream was unsafe (though I didn't realize it until too
late); if the table was in the middle of a reload, its data source might change
shape underneath it, leading to lots of out-of-bounds errors and so forth. The
fix is to make the table datasources immutable: they may never change their
data. They are now called "moments" of the tableview, because that's all the
represent. A moment of the table's state. When the sections, then, of a form
change (or the rows, or any such thing), a new "moment" is generated and given
the table as its data source. We also animate these changes by diffing the
sections and rows.

The API is minimally different; the moments architecture is an implementation
detail that consumers won't be dealing with directly.