Graphing tool to draw single-line shape

- Adding 'Graphing' tool for drawing shapes within the graph pane.

- Adding 'graphing' state to handle the states of the Graphing tool.

- Adding new parameters showCrossHairs, showGraphGrid and
  showToolTipCoords in the showGraphPane function of "activity_step.js"
  to enable/disable the cross-hair, grid and tooltip in the graph pane.

- Adding a 'lineCount' operator to get the line count from the
  'Graphing' tool.
Adding grid in graph pane

- Initial code for grid drawing using the 'gridView' in the axesView.
Extending line-segment between points to line

- Adding a function drawLineThroughPoints in graphing_state.js to draw
  an extended line.

- Adding a function graphViewFromState in graphing_tool.js to fetch
  reference of the graphView of the tool's Graph pane.
Handling mouse events in graph pane

- Passing the mouse events of the 'graphCanvasView' to the
  'inputAreaView' which are missed because of the grid lines.

- Rendering of graph grid and the crosshair is now dependent on the
  'showCrossHairs' and 'showGraphGrid' parameters of graph pane which
  is controlled by the author.
Plotting code: graphing_state -> graphing_tool

- Moving point plotting and line drawing functionality from
  'graphing_state' to 'graphing_tool'.
Adding tooltip on the gridView

- Adding 'tooltipView' in the graphView to show x and y
  co-ordinates of the grid.

- Adding 'toolTipLabel' class in style.css to apply the style to the
  tooltip.

- Adding function 'updateToolTip' and 'hideToolTip' in the
  GraphController to update and hide tooltip dynamically.
Changing cursor type back to original

- Adding variables 'requestedCursorStyle' and 'showTooltip' in
  graphingTool for handling drag events.

- Changing the cursor type after points plotting to original.

- Fixing typo error in graphing_tool.js
Merging from branch 'line-construction'

- Merging latest code of branch 'line-construction' into branch
  'line-construction-test'.
Unit tests for graphing_tool

- Adding a test for getLinePointWithinLogicalBounds in graphing_tool
  to check whether the points which are used to plot line are within
  logical bounds.
Adding line-construction-sequence.js
- Adding line-construction-sequence.js in activity_json
Merging from branch 'line-construction'

- Merging changes from branch 'line-construction' into
  'line-construction-test'.
Adding 'datadefList' property in view/graph.js

- To store all the datadef objects added to the graph.

- Adding datadef related functions to view/graph.js to add, remove,
  find and clear.

- Adding 'appendRepresentation' funtion in graphing_tool.js to store
  datadef list.

- Adding 'getLogicalBoundsFromState' funtion in graphing_tool.js to
  get logical screen bounds of the graph.
Merging from 'line-construction'

- Merging latest changes from 'line-construction' branch into
  'line-construction-test' branch.
Adding integration test files

- Adding 'integration/src/graphing_tool.coffee' and
  'integration/graphing_tool.js' files for LineConstructionSequence.
Adding graph title visibility functions

- Adding 'hideGraphTitle' & 'showGraphTitle' functions in
  'graphing_tool.js' file to hide & show graph title respectively.
Fixing tooltip on gridView

- Now extending 'toolTipView' from SC.view instead of SC.LabelView.

- Adding the 'hideToolTipCoords' and 'tooltipCoords' to handle mouse
  events of the tooptip.

- Chainging function 'updateToolTip' and 'hideToolTip' in the
  GraphController to update and hide tooltip dynamically.
Merging from 'line-construction'

- Merging latest code from 'line-construction' branch into
  'line-construction-test' branch.
Updating test files

- Updating the integration test files as per latest changes.
Merging from 'line-construction-test'

- Merging latest test scripts from 'line-construction-test' branch
  into 'line-construction' branch.
Fix: whitespace

- Whitespace fix in the 'views/graph.js', 'graphing_state.js',
  'graphing_tool.js' and 'style.js'.