Dynmaic array handling

Dynamic array handling is severely broken on delphi x64 because the array header layout is different from 32bit (related to issue #63).

This patch refactor the handling by defining the header structure as a record to access refcount and length. I have done basic testing on x32 and x64 (Delphi XE2) and this works for the tests I have done. The header definition I have found for FPC include a function to get the length (the old code ignore this). I'm not familiar enough with FPC and someone will need to check if this patch need some adjustment for FPC.
Merge pull request #69 from velter/patch-2

Dynamic array handling