Create a class to handle customized segues.

We need to handle switching navigation controlers. This requires resetting the
root view's navigation controller.
Extract location finding from map view.

We want to be able to reuse the location manager in our instance switcher so it
must be moved to sharable code.
Add controller for the instance switcher.

The instance switcher needs a new tableview controller which will store the
choice of the selected instance for the user.
Wire the new instance switcher to exisiting elements.

We need the user flow of the application to include the instance switcher. If a
user first starts the app, they will be directed to choose and instance and if
they use the profile page, they will have the option to change locations as
well. The choice of instance is stored in the user's preferences.
Find the closest instance based on proximity.

Based on the location of the device, we find the instances available to the user
in proximity order.
Update storyboards & layouts for instance switcher.

These ui elements are controlled via the GUI tools in XCode and are thus hard to
inspect from code. These changes reflect the end state of the application after
changes to incorporate the instance switcher.
Swap out deprecated methods.

dismissModalViewControllerAnimated:
and
presentModalViewController: animated:
have been deprecated as of iOS 5.
Remove explicit retain.
Fixup comment linebreaks.
Remove observer status when deallocating object memory.
Storyboard layout update.
Ensure map title changes when instance changes.

After selecting an instance of a treemap users are sent to the map view page.
This has a title bar which had been statically set. Here we update it with the
data returned from the api.
Deregister objects notifications at deallocation.

Anytime an object registers for notifications it must also deregister at
deallocation. This was causing some trouble with our navigation controllers
which switch the root view controller. Since I found a few examples of this, I
decided to be defensive.
Update the species edit row with species name.

We want the user to know that his/her choice was respected when editing the tree
details and changing the speices. To do this we add the current species to the
table cell and update it when a new species is selected. This requires making
the tree detail view a delegate for data coming from selected rows on the
species table view controller.
Add section labels to tree edit screen.

We want users to know what the fields they are editing are related to in
reference to the tree detail screen. We had labels for the sections on the
detail screen but not the edit screen so we add them here by reshuffling the
same labels that are used on the edit screen.
Species selection returns scientific name.

The species selection already returned a common name to the delegate but did not
return the scientific name. To provide more flexability for the future we add
the scientific name as well. Where we use this value and update the cell in the
tree detail view, we split out the magic string update code to a separeate
method on the OTMTreeDetailViewController to make it easier to deal with
updating this cell in other places in the code.
Comments to identify magic numbers & array indexes.

Call attention to the use of hard coded special numbers with @MAGIC annotation.
Also clean up some white space.
Merge pull request #151 from lliss/topic/instance-switcher

Topic/instance switcher
Merge pull request #152 from lliss/topic/tree-edit-mode-labels

Topic/tree edit mode labels