This re introduces the concept of the world

The world is kind of a universal way of keeping state, right now it just supports
the passing of the highlighted block around as the user moves their mouse. Need to
add the selected object support back in and provide the destination support that
the world used to have.