Draws a box over the snap cursor with placement and snaps the object
being dragged in 3DView.
Most of this commit reuses what was already done in D12823. Regarding:
- The object bounding box and world matrix are written to the asset meatadata on file save.
- This is done through a PreSaveFn callback set for object assets via a new AssetTypeInfo struct. This struct may become more important once we support non-ID assets in future.
- The object preview image is disabled while dragging objects over the 3D view.
- Change the "Add Named Object" drag into string to "Add Object". The "Named" part is kinda useless info and relates to an implementation detail.
The difference in this patch is in the way the placement cursor is drawn:
- Activate the cursor in the dropbox pool function
- TODO ##
- Allow snapping to both positive and negative normal direction. Currently a ground plane with -Z up will place the object the wrong way around, for example.
- Don't use this for object types with no real geometry, e.g. cameras and lamps.



