BUG: update cursor on persistent place type change

When in persistent place mode, a user can change to a different
type of node to place without dropping out of place mode. This
change fixes the bug that the cursor won't get updated because
the interaction mode change is a no-op and a modified event
doesn't get triggered to update the tool bar. This is a bit of
a hack, manually updating the tool bar to place mode to trigger
a cursor change to the correct icon.
ENH: Add displayable manager for rulers in 3D

Add ability to add ruler widgets via the mouse (new icon added) and
add in a 3D displayable manager to display rulers.
TODO: remove the placing of Annotation rulers and update the string
displayed by the mouse mode tool bar.
Add support for one widget per markup in the list in addition to the
fiducials method of having one widget per list.
For the 3d displayable manager: Add the markup index as an
argument to PropagateWidgetToMRML, AddWidget (also moved down into
subclasses so that the fiducials manager can not use the index),
OnMRMLMarkupsNodeMarkupRemovedEvent, OnWidgetCreated, and updating the
nth seed position generalised to UpdateNthWidgetPositionFromMRML
For the helper class add data structures and methods to keep track of
widgets per markup. TODO: needs to be cleaned up and unified,
fiducials manager and rulers manager will use different data
types. Had to add an update method since the first ruler in a node has
it's id reset after the node is added to the scene and after the
widget is created.
Fixed the naming of new nodes from mouse placement, get a unique
string from the scene.
Added a tool tip saying that the ruler format is over ridden by the Units
length setting.
Added error checking when adding a new markup via the GUI
button, make the ruler position more sensible.

TODO: get deleting rulers working, need to use the about to be deleted
event to delete the id indexed widget. For now, the delete buttons are
disabled in the GUI and scene close is handled manually.

Issue #3367