Make Trait an extendable module

The Const = Trait.new do; end was ugly and also forced the composition to
have a messy options hash. Now we can pass trait objects as arguments.
Add Guard as dev dependency in Gemfile

Don't want this clogging up the gemspec since it's perfectly possible
to develop without it.