[sgen-gray-queue] Change from index based to cursor based gray queue access to current element

This patch consist in changing the way we access the current element value in the gray queue. Before, we would save the index of the last element in the queue, then to access to the current value, we would have to make 2 memory access + 1 array offset access. Now we store a pointer to the current element, so we only need 1 memory access, thus reducing the number of memory indirection. We see ~25% speed improvement in major gc collection time on gc-graystack-stress test.
[sgen-gray-queue] Transform GRAY_OBJECT_(EN|DE)QUEUE to always inlined functions
[sgen-gray-queue] Add macros to compute first and last cursor position address on a section
[sgen-protocol] Avoid multiple inclusion of sgen-protocol.h
[sgen-binprot,sgen-gray-queue] Add binary_protocol_gray_(en|de)queue and call them on object enqueuing and dequeuing
[sgen-gray-queue] Remove compilation warning in mini-gc.c : redefinition of typedef 'mword'
[sgen-gray-queue] Add heavy statistics for allocation, and enqueue/dequeue fast/slow paths