ENH: update the selection node to be more general

Use the class name so modules can register a node to place
via mouse more generally.
Use the new functionality in the mouse mode tool bar,
annotations, testing.
ENH: add support for the LPS coordinate system for CLIs

Add a coordinate system flag check, default to ras but support lps.
Update the displayable nodes that use the WriteCLI method to
use the coordinate system flag.
TODO: ijk
BUG: set strings to null after delete

Set strings to null after they've been deleted, trying to
avoid seg faults when debugging
ENH: move the color conversion utility methods

Move the C++ color / Qt color conversion methods out of
Annotations and into qMRMLUtils.
ENH: add the ability to access displayable managers.

Added get nth displayable manager to the displayable manager group, and
get displayable managers to the ThreeD view and widget
Useful for debugging displayable managers.
ENH: Add Markups module providing easy fiducials management.

Based on the Annotations module from Slicer 4.2 and the Fiducials
module from Slicer 3.6, add a new Markups module to provide
some missing functionality into Slicer4:
- one file per fiducial list
- added a unique id and orientation for each fiducial
- save/restore default display settings
- create list with current list display settings
- press p to add a fiducial
- one click jump slices
- move fids between lists
- split displayable managers into 2d and 3d versions
- pattern for names of new fiducials
- projection on 2d viewers
ENH: add annotation and markup file loading

Add utility methods to allow loading Markup fiducials
from the python console, as well as a backward
compatible Annotation reader
ENH: support passing Markup fiducials to CLIs

Use the coordinate system flag to support RAS or LPS coordinates
for the points.
ENH: deprecating annotation fiducials

Edit properties in the Data module will go to the Markups module for
both Markups and Annotations fiducials, so that annotation fids
can be converted.
Unregister the Annotations fiducials IO, Markups can read .acsv files.
Add a label in the Annotations GUI that fiducials can be found in the Markups module.
ENH: update tractography interactive seeding

Allow usage of Markups fiducials or Annotations fiducials.
ENH: expose module displayable managers to Python

Before this change, you could get at module displayable managers but not
call any of their specific methods in python. This change follows the
pattern of the module logic init file.

To get at the module displayable managers for the first 3D window:
lm = slicer.app.layoutManager()
td = lm.threeDWidget(0)
dms = td.getDisplayableManagers()

The markups fiducial displayable manager was at index 7 in my test:
mfdm = dms.GetItemAsObject(7)
h = mfdm.GetHelper()
from there you can debug the seed widgets

Annotation, Volume Rendering and Tractography displayable managers
are now also accessible from python.
STYLE: update Markups documentation to include projection, name format

Update the xml documentation that will be used on the wiki page to
include new features: 2d projection, name format, renaming and reset.
BUG: renable delete, fixing selection node and compare view

From feedback from Ron:
- the delete buttons were disabled by mistake, re-enabled them and
  added a right click menu option to delete highlighted markups
- don't offer the move to another list right click menu if there
  are no other lists
- fixed the selection node observations so that could make the
  fiducial list in the Neuro tutorial test active when it was
  run as a self test in Slicer
- added more error checking to avoid crashes in moving between
  compare view layouts
- swap out the seed handles between 2d and 3d ones as move between
  compare and non compare view layouts
- still some debugging to do in compare view
BUG: bug fixing from user feedback - pan, click, help, endoscopy

Fix pan bug, comparison for valid viewpoint coordinates wasn't properly
checking the first coordinate (fixed it in Annotations as well).
Replace Annotations with Markups in default favorite modules list.
Add link to wiki help page
Updated default glyph and text size as per Ron's suggestion
Fix the bug where a double click on the visibility, lock or selected could
pop an entry box (make then not editable).
Adjust the cell selection in the table so that it works with mouse clicks
as well as keyboard arrows
Update the Endoscopy module to be able to use Markup fiducials (added a
backward compatibility call of GetNumberOfFiducials to the Markups fiducial node).
Added a compare view self test.
COMP: fix windows compilation problem - skip TO_NATIVE

Take out changing file paths for testing files to native format,
was causing a compile error on Windows.
ENH: add Markups to top level modules

Add in an empty category so that the Markups module will appear
at the top of the modules drop down as well as in Informatics.
BUG: GUI refactor, delete projections, default color, node tag, scale

Changed default color to match Slicer3 where fiducials were created with selected
on by default.
Changed the markups fiducial node tag name to give a better string on node
selectors (using FiducialList instead of MarkupsFiducial)
Removed using markups node name in name format string, user can use %N manually
Added toggle methods for all markups in list for visibility, locked, selected
and consolidated the calls into menu push buttons in the GUI (added a select/unselect icon)
Fixed a bug in deleting projections, have to check all points in lists against
all the projection widgets since the widget delete method was being called
after a point was removed from the list and the projection widget was no
longer mapped to a valid point id.
Disable projection color picker button if using fiducial color.
Added a uniform markup scale that will set both text and glyph to the same scale.
Adjusted table column widths (smaller) and RAS coordinate precision (to 3 from 6)
Factored out the GUI update to watch for and respond to display node changes.
Added a jump slices action to the right click menu in the table.
BUG: change fiducial place icon to have arrow point at top

The previous icon had the fiducial glyph at the top of the icon
and was leading to a feeling that the fiducial was off by a few
pixels when placed with the mouse. Using a copy of the
Annotations point with arrow icon.
BUG: revert node tag name change

It was conflicting with vtkMRMLFiducialListNode and the Markups fiducial
node wasn't set up to read the fiducial list node XML attributes as
it should do if it's over riding that xml node tag.
STYLE: updating documentation

Update the XML description to match the new GUI layout, adding
new entries for new widgets and updating some descriptions
from ui file tool tips.