Move objective decorators into their own package, and generalize DynamicOffsetObjective to handle more than two dimensions.