Use array of dictionaries for cell & section data.

We had been using two arrays to deal with tracking the data for section headers
and cells. We would add and remove data from these and so had to continue to
update code with tweaks to point to the proper index for a section title or
specific cell. This caused lots of problems and confusion. Instead we build up
a mutable array of dictionaries. Each dictionary has a "title" which will be the
section title and "cells" which is a mutable array of the cells in the section.
This way the single structure can be responsible for rendering the entire table
and adding a cell does not require adding or subtracting from indexes with
magical numbers. To reduce complexity we also re-render the table when
transitioning to and from edit mode. This is also done after login to avoid
stale data.
Fix alignment of editable cell labels.

Cells were build to expect a label and a value below it. This is good for static
content but there is no value when in edit mode since we show fields to edit.
Offset the position of the name field so that it centers in the cell.
Fixup code formatting.

Adjust line breaks and placement of curly-braces so that things are more
standard.
Don't rely on cell placement to update cell text.

When swapping the label of the set species cell we had been relying on the
knowledge that it was the first index in the list of visible cells. This
resulted in hard coding a magic number. Instead loop over the editable cells in
order until finding the set species cell and use that placement to update the
label on the visible cells.
Map detail cell renderer cleanup.

The map cell was exhibiting  strange behavior and chevrons that would appear and
disappear. There was also a set image for the chevron rather than using the
built in cell style. This was stripped out to reduce complexity.
Clean up some lint and add comments.