Fixes issue #129 - Don't leak gcodes in block.
Previously Conveyor::new_block() was never executing the last chance
code it contained to clean up the next block that it was going to
overwrite and use in the ring buffer. This was failing to run becaues
this->queue.get_ref(this->queue.size()) would always return a NULL
pointer as that method doesn't allow indexing to or past the tail.
I added a get_tail_ref() method to RingBuffer which returns the
required pointer.
NOTE: There is still a bug in the flush_blocks / Conveyor::on_idle()
code path as it should have cleaned up this block already but it
failed to do so.