New configuration system

Mostly for backend-specific parameters.
Made config dict a WeakRefDictionary

(see http://nbviewer.ipython.org/urls/gist.github.com/ChrisBeaumont/5758381/raw/descriptor_writeup.ipynb
for reasoning)
Changed to decorator syntax
Made config system more Pythonic

- Also added examples to docstrings
Class hierarchies handled in Config system