defVar tidy and better messages

I added comments, and tried to make the error messages more detailed and standardized. By injecting the the variable name it also should help the whole line number issue.

I changed one thing (and can unchange it): allowing 0,1 bounds for Bin, but nothing else. This lets people drop and add Bin to do manual relaxations. You can just do 0<=x<=1,Int, but I thought this might be ok.

Error messages read better now I think
```
ERROR: in @defVar (x): bounds other than [0, 1] may not be specified for binary variables.
These are always taken to have a lower bound of 0 and upper bound of 1.
```
No reason to not be super verbose