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
The lack of the `p` is bothering so much (even though I did `nl_solvers` instead of `nlp_solvers`)