First class constraints

This is a proposal to allow for first-class constraints on problems.

The idea is to determine the constraint violations at the point in the search space for a given `Position`. Although this is still a WIP, the idea is mostly obvious. This will result in constraints being a first-class concern, which is mighty handy for many optimization processes.