Show function values as tooltip when holding Ctrl

gui/pipeline_view.py:
 - QGraphicsModuleItem.__init__:
   call setAcceptHoverEvents
   New attribute function_overview
 - QGraphicsModuleItem.updateFunctionPorts:
   Create a html tooltip showing function values
 - QGraphicsModuleItem.hoverEnterEvent: *new
   Show function_overview as tooltip
   Note that this overwrites errorTrace tooltips
Replaced functions tooltip with QGraphicsText

Using QGraphicsText is more consistent and faster to hover
We may also want an option to show functions for all modules simultaneously
e.g. to ge a full provenance pdf

gui/pipeline_view.py
Edit constant values on module in pipeline

Added ability to use the edit widget for constant modules directly
on the module in the pipeline view.

TODO
* Improve layout
* Create graphicsitem versions of constant edit widgets
* Improve wrapping of graphicsitem widgets
* Allow showing edit widgets on select parameters on non-constant modules
* Fix dot error on uninitialized transferfunction

gui/pipeline_view.py:
 -  setupModule: Add edit widget on module if it is a constant module.
  GraphicsModule now handle its own key presses and focus.
  vtk transferfunction is added as an GraphicsWidget. Others are added using
  QGraphicsProxy, and may look pixelated.

packages/vtk/tf_widget.py:
  Moved logic from scene to graphicswidget so that it can
  be added the pipelinescene directly.
Added buttons to toggle visibility of type and port visibility icon

gui/module_info.py:
  Added portVisibility and typeVisibility buttons
gui/ports_pane.py:
  Use portVisibility and typeVisibility options
Removed leftover space when hiding parameter type

gui/ports_pane.py
Added non-functional temporary "edits visible" button to module-info tab
Show selected function widgets on module

TODO:

* Visibility mode is only temporary
* Add labels
* Improve layout
* Add native GraphicsItem widgets

gui/modules/constant_configuration.py:
- ConstantWidgetMixin:
  Changed to use new-style signals, but need to add signal to
  classes inheriting QWidget

gui/pipeline_view.py:
  Added widgets for showing selected functions

gui/ports_pane.py:
  New 'E' icon for toggling visibility on module

Updated contentsChanged signal:
  packages/vtk/tf_widget.py
  gui/mashups/mashups_widgets.py
Store shown widgets in annotation

* Also disabled showing empty functions

core/vistrail/module.py:
  New property editable_input_ports that returns contents of
  INLINE_WIDGET_ANNOTATION as a set

gui/pipeline_view.py:
  Fixed missing portspec in dummy functions

gui/ports_pane.py:
  Do not show functions with length 0
Improved edit widget layout

gui/pipeline_view.py:
 - computeBoundingRect:
   Simplified the way rects are combined
   The default layout should still be the same

core/theme.py:
  New attribute MODULE_EDIT_MARGIN

Fixed issue with contentsChanged in ConstantWidgetMixin subclasses,
the type was wrong, (object, str) -> (tuple):
  gui/modules/constant_configuration.py
  gui/mashups/mashups_widgets.py
  packages/vtk/tf_widget.py

Added missing contentsChanged attributes:
  packages/persistence/widgets.py
  packages/webServices/enumeration_widget.py
Added function name to module edit widgets

gui/pipeline_view.py:
 - QGraphicsFunctionWidget:
   Added function name
 - QGraphicsFunctionWidget:
   Adjusted bottom margin

core/theme.py:
  Adjusted MODULE_EDIT_MARGIN bottom

gui/theme.py:
  Added MODULE_EDIT_FONT + _METRIC
Fixed hiding module edit widgets in read-only mode

gui/pipeline_view.py:
 setupModule needs to be called with the read_only flag set
Fixed error adding transfer function to edit widget

Transfer function widget try to access scene before it is initialized
because of update_function_ports being called

gui/pipeline_view.py:
 - create_tf_items:
   Skip if scene not initialized and items to delete exist

packages/vtk/tf_widget.py:
 - setupModule:
   call update_function_ports last
Added missing contentsChanged signal in packages/vtk/tf_widget.py
Added tooltip to module edit widget funtion name

gui/pipeline_view.py:
 - QGraphicsFunctionWidget:
   Show parameter types as tooltip for name label
Use pencil icon for edit widget visibility

Changed 'E' icon to pencil icon in:
  gui/module_info.py
  gui/ports_pane.py

New images:
  gui/resources/images/pencil-disabled.png
  gui/resources/images/pencil.png
Fixed module text scaling on Linux

Also fixed abstract upgrade icon position
Fixed children of proxied module edit widget being rendered inside graphicsview

gui/pipeline_view.py:
  Set Qt.BypassGraphicsProxyWidget flag on proxied widgets so that
  children are rendered as normal widgets
QGraphicsTransferFunction now use standard coordinate system

This makes it easier to add graphicswidgets for other constant types

Also adjusted edit widget bottom margin

core/theme.py:
  Changed edit widget bottom margin from 2 to 4

gui/pipeline_view.py:
  Removed special transformation needed by qgraphicstransferfunction

packages/vtk/tf_widget.py:
  Transform qgraphicstransferfunction to normal coordinate system
Added native GraphicsItem version of StandardConstantWidget

This is now the default for String/Float/Int

gui/modules/constant_configuration.py:
  - QGraphicsLineEdit: *new
    Extends QGraphicsTextItem to fully support unlimited single-line strings
    The tricky part was to scroll to the cursor for overflowing strings

gui/pipeline_view.py:
  Background needs to pass focusIn to the widget because its clickable area
  is just on the existing text
 - update_module_color:
    Recreate module if visible function has been deleted
Fixed focus-clicking always focusing last inline parameter widget