Major refactoring

Yeah, well, I know nobody asked for this but I felt like making some changes.

Now it's quite a bit more modular and it would be easy to implement other inlineable languages as long as they build shared libraries with exported symbols.

I also reduced the gem building process to just a gemspec file.

The caching right now is to be reimplemented, I found the FilenameManager design to be incompatible with a multiple language system, so I removed it and moved that part to the Compiler job.

There are still 3 compilers, tcc, gcc and g++, and there are 2 builders, C and C++, this builders, to add more languages it's only needed to create another builder and a compiler for the builder, then everything should run fine.

If these changes are unwanted I'll just make another gem or something, choice is yours :)

I need this in a project of mine anyway, so whatever outcome is ok for me :)