Created the new module FFI

It uses rpython.rlib.clibffi.
Wrote a new test and implemented it

However the new implementation definitely needs some refactoring.
Simplified the wrapping part of the call function
Added some ruby-ffi stuff to lib-ruby
Added some specs from ruby-ffi to spec

The goal is to make them run on topaz with mspec.
Lot's of c stuff will have to be rewritten in RPython.
Fixed first problem on my way to make specs run.

Some constants needed to be defined.
Made 'Type' constant a class
Defined lot's of constants like VOID or INT

Some, like CHAR are still missing.
Most "alias" types implemented.

Only LONG and ULONG are missing (see comment in ffi.py).
(Well and obviously the aliases for LONG and ULONG)
All types are defined.
Refactored the code by replacing lists with dicts
DataConverter is now available
Added methods to DataConverter

:native_type, :to_native and :from_native now exist but their bytecodes are
just mocks. Hence the interpreter raises an Exception because these mocks don't
even have the correct number of arguments.
Variable renaming
Started writing tests for the FFI module
Added tests for primitive types
Wrote a test for DataConverter
Wrapped some python strs as ruby Symbols
Layout refactoring
test_Type also looks for alias types now