Dynamic pype loading and KeyNotInContextError == KeyError
This release is all @Reskov! 馃帀 Much thanks for your excellent contributions to some tricky bits of the pypyr core!
- Context KeyNotInContextError now also derives from KeyError. This makes it easier to catch missing key exceptions in scenarios where Context keys contain other dicts.
- Allow dynamic loading of pipeline loaders. This allows core extensibility to load pipelines differently and from other places than the default file loader. Plugins can now do things like
myplugin.pypeloaders.getpypefromsomewhere
closes #106