Extend mmread to work on all Matrix Market matrices

This PR updates and adds missing functionality to mmread.

Summary of changes:

- Support for complex and pattern (Bool) matrices
- Supports symmetric, skew-symmetric and Hermitian matrices. For symmetric and Hermitian matrices, returns Symmetric and Hermitian matrices respectively. Skew-symmetric matrices are emulated by copying nonzero elements appropriately.
- Errors are thrown using ParseErrors instead of error()
- Fixes potential type instability in sparse matrix construction (Int assumed to be Int32)
- Ignores blank lines before start of actual data, even though strictly speaking this is not part of the file format specification. This is needed to parse some matrices in the Matrix Market (namely qh882)
- Adds a test which arbitrarily selects a matrix from the Matrix Market to download and parses it.
- Adds modern Travis config file, package badges to README, and some very simple documentation

I've tested this PR on all the matrices in the Matrix Market and they seem to parse ok, with no errors. (I haven't actually checked the data though.)

This should be the bare minimum necessary needed to make this package actually useful for production work.