Handled deleted options better.
Handled deleted options better.

Previously, the Read view assumed that all options were valid and
were sequentially numbered from `0` to `n - 1`, where `n` is the
number of options.

However, if I delete one of the options using the datastore viewer,
this assumption is no longer valid. If there are three valid
options numbered 0, 1, and 3, 0 and 1 would display correctly but
instead of 3, there would be a blank button with a link to an
invalid page.

Now, the Read view checks to see whether the option is valid and
skips it if it is invalid. When it skips the invalid option, it also
increments the ceiling of the loop, so that all of the options are
displayed correctly.

MattHeard/Dendrite,MattHeard/Dendrite,MattHeard/Dendrite