CompanyTest: Add Shapeless support
ligd, emgm: Make grouping for geq tests work correctly

Reported-by: Yufei Cai
Reported-in: https://github.com/julian-klode/bsc-thesis-code/pull/2
test.scala: Add initial benchmark script

This benchmarks our examples and generates a LaTex table for us.
Make Rep invariant
Style changes
.travis.yml: Add Travis continous integration
ligd: Make RList as subclass of RType

This allows us to pattern match on lists.
ligd: Directly represent booleans

We need direct booleans for some examples and it makes no sense to represent
them as other types.
ligd: Implement a custom equals for RList (breaking recursion)

This makes it possible to compare list types, allowing us to do crazy
stuff like finding all lists of integers in an object.
ligd: Add generic folds and some example folds

Useful stuff, although slightly crazy
test: Add sum, min cases and a new non-generic "Direct" library

This helps benchmarking the overhead of our code
CompanyTest: Add some more LIGD test code
Rename foldl, foldr to gfoldl, gfoldr
CompanyTest: Disable shapeless test, shapeless is broken
ligd: Add foldl() and foldr() with re-ordered arguments and higher-kinded types

Much much nicer interface. The higher kinded type and the re-ordered
arguments allow Scala to infer the type of lambda parameters automatically.

Less work!
test: Add Direct case for company test
test: ligd: Use folds instead of minInt/sum
test: direct: Fix incSalaryU in company test
test: Add "None" library and check that libraries produce the same results
Fix shapeless tests by using a -> object instead of a function

Apparently shapeless completely messes up the function -> poly
conversion, for example:
scala> def inc(i: Int) = i + 1
inc: (i: Int)Int

scala> everywhere(inc _)(List(1,2,3))
res7: List[Int] = List(2, 3, 4)

scala> everywhere(inc _)(List(1,2,3))
java.lang.AbstractMethodError: fresh$macro$6$2$.caseUniv()Lshapeless/PolyDefns$Case;
... 43 elided

In this case, it just failed to update some salaries during
scalatest runs.

This fixes #3