WIP: draft quadratic interface

@IainNZ @ulfworsoe @joehuchette 

I bit the bullet and finally wrote down a prototype of the quadratic interface. It is designed so that transformations of the input into the format required by the solvers has a cost of at most O(nnz) (there's a nice trick to merge duplicates in O(nnz) time and O(nnz+n) space, where n is the number of variables and nnz the number of nonzero elements in Q). We could provide some basic routines that do this inside of MathProgBase for convenience.

The only exception is Mosek, which needs to factorize the Q matrix for quadratic constraints. Gurobi and CPLEX likely do this internally because they also use a conic solver. When JuMP heads towards conic modeling, we can also consider adding an interface like ``Ax+b in C``, but at the moment I think we should standardize the quadratic constraint format, since that's what Gurobi and CPLEX use. What do you think, Ulf?

Let me know if anything is unclear in the description of the input formats.