Added the possibility to add priorities on constraints. This functionality has application in UI layout engines. The idea was stolen from Cassowary. The intended functionality is the same but the implementation I propose in this PR is more robust for two reasons: Cassowary's implementation is more prone to rounding errors and it does not guarantee that a constraint with a higher priority will be satisfied in priority (my implementation will guarantee it).
Added variable value update at the end of the solving process. When the user creates a model using the function API, he does not have to get a new object containing the solution set since he can simply look at the variable.value property.
Properly refactored the unit tests for testing the function API, dynamic model modification and model relaxation.
Updated some problems' expected results.
N.B: these modifications do not seem to have any measurable negative impact on performance.
variable.value
property.N.B: these modifications do not seem to have any measurable negative impact on performance.