gras: fixed allocation override bug + unit test

When multiple consumers all choose to override the buffer,
they were doing so with the same token, this lead to some
buffer allocation confusion and nasty errors.
Its ok for one to win out, but each allocator needs a unique token.
There is also a unit test to check for this behaviour.