Use modern syntax for optional argument
Handle nonconformant files with empty lines between comment and header.

The MatrixMarket itself has a file which needs this special treatment:
NEP/quebec/qh882.mtx
Throw more informative parse error for malformed header
throw Exceptions instead of error()
Remove unnecessary restriction on filename
Support complex matrices
Support Symmetric and Hermitian matrices
Hacky support for skew-symmetric matrices

Unlike Symmetric and Hermitian matrices, there is no SkewSymmetric type
in Julia. Instead, mmread will call the new skewsymmetric! function to
duplicate the entries appropriately.
Clean up whitespace

Also updates comments
Fix type instability in coordinate parsing
Convert all errors into ParseErrors
Add support for pattern field
Add parse test of Matrix Market matrices

The current test will download a matrix from the Matrix Market at random from the list of all available matrices and attempt to parse that.

The tests will run on all .mtx files in the test directory.