Feature attributes namespace. Added configure property, and tests, refactored core code surrounding attributes. Completes #339 #340 #341