Revoked the deprecation of return values from callbacks.

The primary purpose for returning cube instances from a callback is to be able to index or expand a cube within the callback itself - the functionality has always been there, but it was deprecated many releases ago. It has continued to be used by me, and is still very useful, so I've revoked the deprecation and improved the code to boot. Unit tests also now nail down the callback functionality.