Define `before_remove_const` callback

Closes #465
Accept a lambda for context

Closes #467
Merge pull request #477 from haines/issue_465

Define `before_remove_const` callback
Merge pull request #478 from haines/context_lambda

Accept a lambda for context in factory
Wrap context_args to avoid splatting hashes
Merge pull request #479 from haines/context_lambda

Wrap context_args to avoid splatting hashes
Add option to specify namespace for decorator lookup

To use different decorators in different contexts (e.g. HTML rendering
vs. API representation), the ability to specify a decorator namespace is
added. For example:

    > Product.new.decorate
    => #<ProductDecorator:0x0000010b6e47e8>
    > Product.new.decorate(:namespace => HTML)
    => #<HTML::ProductDecorator:0x0000010b6e47e9>
Merge pull request #480 from urbanautomaton/decorator-namespace-option

Add option to specify namespace for decorator lookup