Integrated SWIG bindings generation as part of the build.

This will generate the bindings as part of the build with proper dependency tracking so it will only re-generate if the interface file changes. For this to work, the user needs to have swig in the tools directory, which is another dependency.

This will make it easier to use older LLVM revisions though, since with the pre-generated bindings it might happen that it references symbols that did not yet exist in the LLVM revision being used.