Refs #8509 processheader() now checks more thoroughly

processheader() used to get called after checking the base number of collumns, which was what was cusing the error.

processheader() is now called before setting the base number of collumns and will set the base number of columns as it checks, but only if the user doesn't specifiy a number of columns to skip. processheader() will check for a number of valid lines with the same number of columns (between 2 and 4 inclusive), skipping over and commented or blank lines, and resetting the matching counter when it hits an invalid line of any sort.
Refs #8509 Fixed skipping calculation and fixed other various errors

The calculation of how much was skipped was wrong as i was skipping over lines that were neither data or invalid wihtout taking note of them, a new conter was added - validRows - in order to keep track of how many valid lines there have been consecutively (data or not). This is then used instead of rowsToMatch when calculating numToSkip.

Corrected spelling of "Column" from "Collumn" in many places.

Fixed the bad line check to allow + and - as it had not been updated when they were classed as allowed leading characters

Refactored some of the unit test in order to allow the tests that don't use SaveAscii directly to access a correct absolute path.
Refs #8509 Fixing OSX complier error

OSX didn't like a std::ofstream being given a const std::string, so i've added .c_str() to all calls to getTestFileName() within an ofstream constructor
Merge remote-tracking branch 'origin/bugfix/8509_Fix_LoadAscii_Header_Skip'