Changes:
- `Need`s can be used directly as decorators.
- `CombinationNeed` is used directly in place of subclasses and is bound to the `Need` class. This should allow easier subclassing.
- `CombinationNeed.error` and `NegativeNeed.error` are properties rather than being defined at instantiation. This should allow them to be overridden more easily when `Need.combinator` or `Need.negator` are overridden.