Reorganising of test files.
Added a get_provider method to the registry.

Added a get_provider method to find a single provider by Id.
No registering of duplicate providers.

No longer possible to register two providers with the same id.
Refactoring of the registry.

Refactored the registry to not use an internal list, but a dict for
maintaining the register of providers.
Fix tests to run on py26.
Fix for py32.

Fix the unit tests for get_providers on py32. Makes all test succeed
again.