Improved the TeX parser

* Braces that are preceded by an odd number of backslashes are no
  longer used for sectioning in parseTexString since they are
  escaped (printable) braces.
* '\o' is put in TeX text mode since using it in math mode results
  in a (La)TeX warning.
* Handling of escaped and un-escaped '_' and '^' is improved. Not
  only is it simplified, but it also fixes errors when a subscript
  or superscript operation takes place after escaped (printable)
  backslashes.
* Handling of escaped backslashes is improved. See comments in the
  code for details.
* '$', '%', '#', '§', '&', and '~' are properly escaped. This
  fixes GitHub issue #71. Some Octave quirks are handled
  appropriately, see comments in the code for details.
* A bug for TeX strings like 'a^\alpha' is fixed.
* Some bugs in the clean-up code with strings containing escaped
  backslashes in critical places are fixed.

New function switchMatOct makes it easy to use different values
depending on whether matlab2tikz is run in MATLAB or in Octave.
This is necessary e.g. for regexprep with backslashes in the
replacement string.

The FIXME near the top of parseTexSubstring should be no cause for
alarm as inserting '{}' into a TeX string should not cause any
damage. Nevertheless it would be more semantically correct if the
braces weren't inserted, hence the FIXME.
Apostrophe no longer substituted with \'' in output

Apostrophes used to be substituted along with percentage signs and
backslashes. In the latter two cases this takes place because the
strings are passed through sprintf which would otherwise give them
special meaning. In the case of apostrophes this is not the case.
Only when writing out apostrophes they have to escaped like so:

  string = 'before''after'

For more information on string escaping see
http://www.mathworks.com/help/techdoc/ref/fprintf.html#inputarg_formatSpec
Added test function `texrandom'

This test case uses most symbols known to MATLAB and generates five
random strings from them. Grouping braces and sub/superscript
operators are then inserted into the strings in such a way that it
is a valid MATLAB TeX string.

Due to the random nature of the test, its successful completion
does not indicate absence of matlab2tikz bugs, but in running it
multiple times it can also produce combinations that wouldn't all
be generated by hand. Its "inhuman" nature makes it particularly
likely to point out bugs that would not show up with more natural,
human-generated strings.

The test prints out the strings it generated to the console. Since
these change with every iteration of the test, it's imperative to
write them down in case of a test failure.
Cleaned up strings in test cases

Test case `sine_with_annotation':

* Removed collection of special characters introduced in commit
  293234a. These are better handled by the new test case
  `texrandom'. Also they contained invalid TeX code in the form
  of underscore and caret without a symbol in between and
  unbalanced braces because of the backslash in front of the first
  (or lack thereof in front of the second).
* Removed TeX code from XTickLabel since labels are not interpreted
  as TeX by MATLAB and neither by matlab2tikz unless called with
  interpretTickLabelsAsTex = true (default: false).

Test case `legendplot':

* '\sin' and '\cos' are valid in regular TeX but not recognized by
  MATLAB. Thus they resulted in a warning and an ugly m2t output.
  Since the improved TeX parser from commit 23bd5e1 only interprets
  double backslashes as printable backslashes, the output may have
  been as desired, but generally speaking the test cases shouldn't
  contain TeX code that MATLAB's TeX parser doesn't understand as
  the matlab2tikz TeX parser aims to recreate its behavior -- so
  long as the strings themselves are valid MATLAB TeX.
Improved character escaping for strings with interpreter 'none'

* Fixed a problem with braces and backslashes, see comments in the
  code for details.
* Encoded '~' which would otherwise be interpreted as a non-breaking
  space.
* Added removal of unnecessary '{}' for cleaner output.
Improved $$...$$ substitution for strings with interpreter 'latex'

The new substitution RegEx also works with strings containing
'$' or rather '\$'.
Added name of test function to test suite output

Previously it was hard to link a specific test case to, say,
test case number 55. This modification prints the name of the
test case function at completion of each test.
Improved function isVersionBelow

* Second return parameter is renamed from reserved word `error'
  to `noenv'.
* `minorVer' now contains the minor (second-order) version before
  the decimal point as well as the third-order version after the
  decimal point. That way it's possible to test whether the
  version of MATLAB/Octave is below, say, 3.4.1 by calling

    isVersionBelow( m2t, 3, 4.1 )
Improved some comments
Merge pull request #74 from burkart/issue71fix

Improved TeX parser etc.