preliminary support for MINLP

Solvers (like KNITRO) might require the provisioning of variable
types (`Bin`, `Int`, `Cont`, etc) upfront, and cannot modify them after
problem initialization, so they cannot support MINLP formulations
through `setvartype!`

Currently, I’m providing a workaround by dispatching based on the
function signature of `loadnonlinearproblem!`. If it accepts variable
types, then we do not assume that the variables are continuous.

related: https://github.com/JuliaOpt/KNITRO.jl/pull/15
Not a big deal, but 
```julia
any(x->x==:Int, m.colCat)
```
will avoid the allocation.