Drag and drop functionality for inventory

Using a `DraggedItem` Singleton to handle items currently being dragged.
This object is also responsible for rendering the currently-dragged
item.