[WIP] Another iteration on JuMPDicts

I branched this off of #192 to try to add conditionals to indexing JuMPDicts. Here's a small example:

```julia
julia> @defVar(m, x[i=1:4, j=5:7]; iseven(i) || iseven(j), i <= 3)
x[i,j], for all i in {1..4}, j in {5..7} s.t. iseven(i) || iseven(j) and i <= 3 free

julia> x.indexsets
(1:4,5:7)

julia> x.conditions
2-element Array{Any,1}:
 :(iseven(i) || iseven(j))
 :(i <= 3)

julia> x.tupledict
Dict{(Any,Any),Variable} with 5 entries:
  (2,5) => x[2,5]
  (1,6) => x[1,6]
  (3,6) => x[3,6]
  (2,6) => x[2,6]
  (2,7) => x[2,7]
```