Fix issue with backslashes inside of a string

\" should not close a string, and it wasn't. \\" *should* close a
string and it was. \\\" should not close a string but it was.
Instead of only checking the previous two characters for backslashes,
the parser will go back until it finds a non-backslash character and
determine if the number of backslashes was odd or even.
Fix issue #17 with comma inside string in array

The array is split on commas and then each result of the split is
parsed as a value. However, with commas inside the string, string
fragments were being passed to the value parser. This change detects
if the array is an array of strings and if so, it looks for string
fragments and concatenates them.