Re-implementing some things that were broken.
Also, if a typing error is found, and we detect an
infinite loop, we return the errors instead, as that's
probably what causing the loop anyhow.
- Moved the three ConstraintBase functions into one, as it was
giving trouble calculating everything
- Gave each constraint the option to have a comment
- SameTypeConstraint now can have multiple arguments
- Redid the infinite loop detection
- Implemented some more basic operators
- Redid the division by zero for floats, it wasn't giving the
right results.
- Also postponed the updating the AST type3 until afterwards
- Various linting fixes