Handle creation of UDF collection groupings.

The API will now return sets of UDF collections fields that need to be
grouped together and sorted. For instance tree and plot stewardships
will have similar data and should be shown together on the tree detail.
EX:
plot - watering - 2014.07.10
tree - watering - 2014.07.09
plot - mulching - 2014.07.08
As a result we need to track the sort key for the fields (date in the
example above) and the add both fields to the model as a new cell type
that can handle this behavior.
Create 'holder' class to handle rendered cells.

We need to abstract our cell handling up a level. We had been using a
cell renderer which could return a rendered cell. This assumed a 1:1
relationship between the renderer and a cell (i.e. each renderer could
generate a single cell with data). The addition of stewardship and
alerts means this is no longer true. A single field can now result in
the creation of many cells in the tree deail table. A stewarship field
might have 10 stewarship actions. Additionally these can be intermingled
with a totally different field type (tree stewardships and plot
stewardships). So we need a way to render a group of cells from the
data and move them around in such a way that they still have useful data
on them that can be used for sorting and grouping. Here we make a
CellSorter which is a container that holds individual cells along with a
sort key that can be used to group cells of common type and sort data
that can be used to perform the actual sorting.
Group & sort common fields on tree detail table.

In order to show grouped stewardship and alerts properly we need to find
grouped fields and sort them together by the sort data as defined in the
sort key of our new cell sorter holder. In this case, all the cells need
to be prerendered and sorted before we can actually display them on the
table. This allows us to stash away overflow cells on the Load More
button and re-add them to the table each time the button is clicked.
When the load more button has no more hidden cells on it, it will
dissapear.
Formatting and whitespace cleanup.
Storyboard changes.

It's hard to tell what these actually do and I don't recall changing
anything on the storyboard in a meaningful way. The changes don't seem
to be causing any issues but I thought it would be better to keep the
separate in case we have any need to revert them.
Fix crash when adding new tree.

At this point, we do not support adding alerts and stewardships from the
mobile app. In order to prevent the app from crashing when adding new
trees we need to make sure that we don't try to add stewardship and
alert cells to the page for non-existant data.
Change label for UDF types.

Plot should be shown to users as "Planting Site" but is returned in many
cases from the API as "Plot". This allows us to support changing these
titles easily by adding a dictionary of types -> labels.