Allow time seperator to be overriden via options

This allows tooltip date content to be localized for regions that
don't use ":" as the separator between hours and minutes.
Fix dynamically resizing tip container
Fix doubled separator string in time format.
Merge pull request #17 from ahahn/fix-double-separators-in-time-format

Fix doubled separator string in time format.
Merge pull request #15 from ahahn/tooltip-container-dynamic-sizing-revisited

Fix dynamically resizing tip container
Fix, improve, and refactor distortMaxValuesBy

- The calculation used to determine how much to scale graph values to
  additionally fit flags, labeling, etc. was incorrect and is now
  fixed. Previously if the total graph area was 100 and labeling took
  up 20 pixels a scale factor of 1.2 was returned.  The desired effect
  in this case is to have the bars take up 80 pixels, so the scale
  factor should have been 1.25.
- When determining the amount of pixels needed for labeling, the text
  from the longest label is used.  When injected to discern the height
  from the DOM element, it is injected as HTML so character codes are
  reduced to a single character.
- Refactored distortMaxValues to improve readablity and to make it
  more consistent with the rest of the code in Elroi.
Merge pull request #16 from gsmith85/fix-refactor-improve-distortMaxValuesBy

Fix, improve, and refactor distortMaxValuesBy
Minor cleanup of formatDate function
Ability to set thousands and decimal separators

- thousandsSeparator and decimalSeparator can now be added to
  graphOptions and will be utilized in the commaFormat method.
  This allows flexibility when presenting formatted numbers in
  non-English-speaking locales.
- Added QUnit tests to verify comma formatting functionality.
Fix broken pixelsNeededForErrorMessages method

- Fixed broken logic in pixelsNeededForErrorMessages.  This method
  incorrectly calculated the height of the error message box.
- Added check to ensure that distortMaxValuesBy can never return a
  negative scale or cause a division by zero exception.  Both were
  previously possible if the error/pointFlags/x2-labels had a combined
  height that was larger than the height of the graph.
- Extracted code to inject the error message box to guarantee that the
  same classes and styling are applied both when Elroi inject/removes
  to garner size in pixelsNeededForErrorMessages and when Elroi
  actually inject the visible error message.
- Replaced instances where the visibility-hidden class could be used
  but wasn't.
Merge pull request #19 from gsmith85/fix-broken-pixelsNeededForErrorMessages-method

Fix broken pixelsNeededForErrorMessages method
Tests and source refactoring for scale distortion

These changes encompass major changes to ensure that Elroi graph data
appears under any graph decoration (error-messages/point-flags/
x2-axis-labels).  This is a portion of the codebase that has generated a
significant number of bugs.  As such, on top of a reevalutation of all
applicable logic, dozens of additional tests are included.

elroi.css:
- Provided warning to remind users to not modify elroi.css directly as
  revving will overwrite their changes.
- Added comment to '.elroi .paper' alerting users to the fact that the
  height and width properties must be overriden to change the graph
  size.
- Changed to 4 space indentation.

init.js:
- Added getPointFlags method which will return an array containing all
  of the point flags across all series.  This removes most of the logic
  from hasPointFlags which now simply checks the length of the result
  of getPointFlags.  getPointFlags is also used by
  pixelsNeededForPointFlags.
- Added aggressive parameter checking into minValues and maxValues to
  verify bad data isn't being fed in.  These exceptions are documented
  in the header block for each respective method.
- Cleaned up all pixelsNeededFor_______ methods.
- Rewrote pixelsNeededForPointFlags to make its result more accurate.
  Previously the method was calculating the number of pixels of height
  needed by injecting a single faux point flag into the DOM.  This was
  flawed for a number of reasons.  First is that the injected flag was
  using CSS classes that actual point flags don't include.
  Additionally, for the text of the point flag it was using a, constant,
  one-line message.  The result of this is that the result of this
  method was a constant (roughly the line-height of the text on the
  page) if the graph had point flags.  It did not take into account the
  style or the text of any actual point flags!

  The method had been changed so that it now transparently adds each
  individual point flag provided, returning the largest height.  This
  change ensures that point flags that have multiple lines of text or
  have custom classes have their heights correctly calculated.

- Provided more consistent naming around variables, particularly those
  with 'series' in their name.  As 'series' is both singular and plural,
  and Elroi deals with series of series, careful naming is required or
  the code can be very difficult to follow.
- Shifted from using .each to .map functions where appropriate to
  provide more succinct code.
- Provided much more thorough, JSDoc style comments to all touched
  methods.

stackedBar.js
- Fixed broken pointFlag logic so that standard bar graphs can now have
  flags.  Prior to this change point flags were only working for stacked
  bar graphs.

test/elroi.js
- Provided thorough testing for overwhelming majority of methods affected
  by this change set.
- Provided helper methods (e.g. createElroiGraphContainer,
  getMockElroiFnHelpers) to reduce verbosity of current tests.
- Started section for tests that exhibit strange behavior for edge data
  cases; that should be visually verified before each commitment to
  Elroi.
- Changed all tests from using double to single quotes.  Double quotes
  should be reserved for HTML/JSON.
Fixes adjustedMaxMinValues logic when max 0

Addressed issue where if a series had a set of data values that had a
max of 0, the scale returned by adjustedMaxMinValues would have a
correctly set minValues property but an incorrectly set maxValues
property that was always 1.

This error was caused by vestigial logic in adjustedMaxMinValues that
should have been removed when the new axis/distortion logic was
implemented.

Unit tests for adjustedMaxMinValues and a visual verification graph
have been added to Elroi Qunit tests.