add the ability to define custom attributes within the #badge DSL;

any new methods added to a badge block will dynamically added as DSL-style attribute getter/setter methods, and will be passed as attribute hashes when awarding badges. 

Addresses issue #2