Make detail cell able to display date picker.

Detail cells may need to display date data and use a date picker interface to
update. We want to do this because we have a date planted field that is
identified in the api response for fields on some instances as a date. This
requires a format of YYYY-MM-DD (ex 2014-12-31) but had a plain text field that
would cause api errors and prevent users from saving new or edited trees. We
override the delegate for the normal text field and replace the keyboard with
a date picker. If the picker is set on the object we prevent normal text field
behavior and alert the listening delegate of the update from the date picker
target/action listener.
Fields use date pickers based on api response.

The instance endpoint returns data for fields including their type. This was not
being used to actually alter the interface in the app. Here we watch for "date"
type fields and pass that information to the cell renderers which build out the
detail cells. If a field is a date type we set the cell to use a date picker for
input and formatting rather than a keyboard.
Make subclass of textfields to prevent pasting.

Since our numerical input types and our date pickers are based on text fields
they, by default, can have other text pasted in, cut, or otherwise altered. This
has been demonstrated to cause the api endpoint to fail when saving or editing
tree data. We create a new text field class which does not accept any actions
other than copy to prevent this.