pts-to: make gep a separate rule

We will need gep to be handled differently with field-sensitive
analysis. So extract it to a separate rule.
pts-to: use global typedef for PointsToSet
mods: remove unused files

PredefContainers.cpp is unused. The contents is now in Modifies.cpp.
mods: remove WriteCommand::Variable typedef

It makes the code harder readable.
slic: remove relevants template

No need for so complicated code. It's hard to decode what is going
wrong when it comes to errors in templates.
slic: make RC, DEF, REF a pair

This will be needed for field-sensitive analysis.
test: add dump-points-to
pts-to: prepare for fields-sensitive analysis

This means points-to sets now contain pairs. The same as for pointers.
test: field-sensitive, add assert
pts-to: field-sensitive analysis
test: add proper test for field-sensitive pts-to analysis
pts-to: simplify instruction traversion

We have helpers for that in LLVM. A cleanup around that happened too.
pts-to: merge cpp files

No need to have two in there. Put the stuff in a common file:
PointsTo.cpp. And move there some more private stuff.
llvm: simplify getCalleePrototype

And make it more readable.
pts-to: pass call maps to collect functions

This simplifies the code a bit and is a pre-requisite for further
fixes of VarArg functions.
pts-to: make class from call maps

So that we can handle them locally.
pts-to: handle VarArg functions properly

We weren't handling them at all. This caused slicing too much code
because we didn't build modsets properly.
mods: do not limit modifies only to variables

I.e. to what points-to analysis returns as (var, -1). Functions may
modify whatever, not only variables, so remove the p->second != -1
test.