Basic selection service: add/remove provider, get selection.
Handle error conditions.
Docstrings.
Connect listeners to providers.
Disconnect listener.
Rename SelectionProviderNotFoundError -> ProviderNotRegisteredError
Add ListSelection.
Add set_selection .
Factory method for the ListSelection default implementation.

Change the __init__ into a factory that builds a ListSelection
given a list of selected items and a list of all available items.
Update README.
I forgot to update a test when the ListSelection class changed.

This is embarassing.
Simplify signature of callback functions.

The provider ID is saved in the ISelection objects, anyway.
Add user documentation.
id, source_id -> provider_id

The main reason is that many objects that we would like to make
seleciton providers already have a traits `id` (e.g., anything
tasks-related). It also make the variable names more homogeneous.
Merge pull request #15 from enthought/feature/selection-service

Selection service