Some refactoring - adding PlayerItemConsume event

This is untested, but should stop people using milk to see where they are temporarily.