Limit label drag within graph pane

- Limit label drag within graph pane.
Use 'graphView' instead of 'topAnnotationHolder'

- Use 'graphView' instead of 'topAnnotationHolder'.
Keep labels within graph pane on creation

- Keep labels within graph pane on creation.
Restructure code to create label within graph pane

- Make separate function 'getLabelBodyWithinBounds' to bring label body
  within bounds.
Update text in run loop when in edit mode

- Update text in run loop when in edit mode so that we get fresh values
  for height and width.

- Update 'destroy' function in 'editable_label.js'.
Initial commit for calculation of label position

- Initial commit for automatic calculation of label position.
Ensure that position update is done when necessary

- Update value of 'isPositionUpdateRequired' of label to ensure the
  position updates when necessary.
Avoid observer triggers on position calculations

- Avoid observer triggers on position calculations.
Initial commit to avoid labels overlap

- Initial commit to avoid labels overlap.
Fix typo error

- Fix typo error.
Maintain minimum distance between label and point

- Maintain minimum distance between label and point.
Avoid labels overlap on axes

- Avoid labels overlap on axes.
Close label's textarea on enter key

- Close label's textarea and commit text on enter key press.
Bring label to the top on single click

- Bring label to the top of stack of labels on single click.
Update label's anchor position

- Update label's anchor position on the basis of position of the point.
Update default values

- Update default values.
Use score approach to calculate label positions

- Use score approach to calculate label positions.
Update boundary check condition of connecting-line

- Update boundary check condition of connecting-line.
Fix label heicharchy bug

- Fix to keep label heicharchy intact after addition or removal of
  other labels.