Merge pull request #24 from michalt/semilinear

Less allocation of SparseVec
test grammars
Merge pull request #25 from michalt/semilinear

Semilinear improvements
Merge pull request #26 from michalt/semilinear

semilinear: offsets should not use a Divider
Merge pull request #27 from michalt/semilinear

sparse_vec: fix compilation with GCC
semilinear: short-circut + and * for 0 and 1 elements
remove VarPtr typedef and improve the number of included headers