First shot at primitive support in Object layout

This design is heavily inspired by JRuby's truffle-based implementation.
However, there are a couple of significant differences here.

First of all, the design here is simpler by directly using an array that maps the logical fields to their profiled types as internal representation.
Second, we do not support ints, and therefore, we have only an extension array for long primitives (which should also contain double values).
We have extension arrays for object fields as well as primitive fields (this is not yet completely implemented, only what was needed for the benchmarks..., so some cases are just not covered by code, for instance double fields can not be stored yet in the extension array).

[TODO: the design and implementation should be cleaned up, and simplified if possible, ideally some things can be simplified by using the TruffleDSL.]

Signed-off-by: Stefan Marr <git@stefan-marr.de>