Refactors Feature and Datasource to be proper classes and have their own...

... decorators for processing functions.

This commit includes docs for the new classes.