ObjectConstraintManager setup
Traversing the graph & function evaluation are added
Constraints object logic is introduced to define constraints in it
To define a constraint or constraints for a model, a child object called 'Constraints' should be created in the model itself. Within the 'Constraints' object one can define as many costraints as he wants by creating elements and defining functions in the input area. Name of a constraint is used to display the statuses of validations.
OCM: Object name is added to the warning messages
constraint violation is logged as an error
Merge branch master
Fixed self connections getting stretched by strategically placed edges in same block.

This edges that had the "bracket opening" or "bracket closing" shape (like in a self connection) could be manipulated to be on the wrong side of a passing by edge. This allowed the edge to get "stuck" on the wrong side of the edge and moved indefinitely away from it's owner box.
This bug was caused by a value being set by being passed to a function (as in C++ it was a pointer to an int) but in JS it hadn't been updated to being set by returning a value (as it would not be set otherwise as it was simply passing 'undefined' as an argument and had no connection to the previous variable upon entering the function).
Constraint Manager validation is updated to match the latest changes on core
enable donwloading of SVG files
Merge branch 'autorouter_port'
bugfix: calcualte zoom info into drag helper mouse position calculation
update territory functionality is added to Constraint Manager
Added support for box resize. I also fixed a rotation bug.

Adding support for box resize allows for decorators to be changed without the AutoRouter crashing. Also, I needed to move some functionality from the CR3 to the AutoRouter; now the Autorouter will create a path when given two boxes or boxObjects.
constraint population improved
Made some adjustments to the initialization to fix duplication of boxes.
creating toolbar's placeholder in header
meta updates, basic API for meta validation have been completed...
Merge branch 'autorouter_port'
global toolbar
Fixed the simplifying paths when they are being nudged with another box and could find an easier path.

Previously, the edges would keep 'kinks' in their path and would not remove edges that are no longer used. I fixed a method called "SimplifyPaths" in the autoroute method that would fix this.