opaque-keys: Adds support for opaque keys

Inspired from https://github.com/edx/edx-ora2/pull/330
Properly serialize OpaqueKey in light_children
pep8
Make use of the new optional enforce_type flag
Merge pull request #46 from dragonfi/opaque-keys

Move to use opaque keys
Merge pull request #48 from FiloSottile/optional_enforce_type

Make use of the new optional enforce_type flag
Update and expand the README file.