Declarative bindings, ListView sans adapters, Etc.

Much WIP addition of new controller and adapter classes, and associated
views. New declarative style of setting bindings as arguments to
controllers, adapters, and ListView. New Transform Property, and
functionality for using binding transforms.

(There are still some significant lines of work, docs and examples to
update and modify for new APIs, etc.)

ListView now checks if an adapter is passed as an argument, and if not,
finds arguments to build an adapter. This serves to hide the adapter in
the API, except for advanced uses.

Controllers and adapters can now take a tuple of source/prop for a
simple binding, for data and selection. Or data and selection can take
as an argument a new Binding class, which allows a choice of binding
modes: ONE_WAY, FIRST_ITEM, TWO_WAY (TWO_WAY not yet implemented).
Several utility methods were added to controllers/utils.py to aid
parsing and setting bindings from these arguments. Controllers and
adapters now have specialized update methods for use with the transform
bindings.

Binding transforms are possible in a new TransformController and
TransformAdapter, made possible by a new Kivy property called
TransformProperty, and two subclasses, FilterProperty and MapProperty.

A new controller, ObjectController, and a new adapter, ObjectAdapter,
were added to hold a single data item (which can be anything, including
a list, dict, etc.). Added an ObjectView to go along with ObjectAdapter,
in a manner similar to the way ListView has a ListAdapter.

Added TransformView, which uses TransformAdapter, whose use is similar
to ObjectView/ObjectAdapter, but when there is a need to transform the
subject first.

Added a revamped ListItemLabel and SelectableStringItem, for use in
ListAdapter / ListView when only item_strings is provided. REMOVED
SimpleListAdapter, replacing it with creation of SelectableStringItem
instances wrapping the strings (in ListAdapter).

Updated some examples, including list_cascade_controllers.py and
_properties.py. Added list_cascade_no_adapters.py, which illustrates the
state of work for a ListView API that does not require a separate
ListAdapter; the adapter is constructed from arguments to ListView.
Fixed a few bugs in list_data_changes.py example, and some others.

Added an App.app() convenience method, because App.get_running_app() was
getting long.

Added kivy.enums.py to hold convenience Enums, so far, for bindings and
selection.

Selection uses a set of schemes (enum selection_schemes) for specifying
the relationship between selection of data items and view items
representing them. These include the default VIEW_ON_DATA, which works
like the existing system, wherein selection state is loaded from data
initially, but not updated from UI actions. In VIEW_DRIVEN, data IS
updated from UI actions, and DATA_DRIVEN is the opposite.
DATA_VIEW_COUPLED, not yet implemented, is meant to correspond with
TWO_WAY binding mode, also not yet implemented. The OBJECT selection
scheme is used in controllers for which a simple data item selection is
needed (where data can be any items). Fixed some bugs in Selection, for
use of ksel, and minimized dispatching. Selection now uses
OpObservableList and has an op handler patterned after those in the
adapters.

Improved and added tests for adapters, controllers, selection, and new
views.