Change generic `error()` calls to `throw(DimensionMismatch())` where appropriate
Replace square matrix checks with @assertsquare

[TODO: Consolidate with chksquare in lapack.jl]
Consolidate singular matrix checks using @assertnonsingular
Use meaningful `Exception` in `cov`
Cleanup Woodbury routines

- remove unnecessary `return`s
- convert some simple functions to one-liners
Cleanup UMFPack routines

- Added `umferror()` error handler
Simplify `full(A::Triangular)`
Cleanup tridiagonal routines

- Remove unnecessary `return`s
- Throw exceptions instead of generic `error`s where possible
- Simplify functions to one-liners where possible
Simplify symmetric matrix routines
Cleanup sparse matrix routines

- Remove redundant `return`s
- Collapse nested loops
Cleanup packed rectangular matrix routines
Cleanup generic linear algebra routines

- Remove redudant semicolons and `return`s
- Eliminate generate `error`s where possible
- Consolidate definitions
Clean up generic matmuls

- Collapse loops using multiloop notation
- Remove redundant `return`s
Cleanup matrix factorization code

- Add macros to simplify testing for bad matrices
  - assertrank, assertrank2: rank deficiency
  - assertnonsingular: singular matrices
  - assertposdef: positive definiteness
- "No such type field" error messages now state the invalid argument
- Remove redundant `return`s
- Simplify method definitions using default keywords, esp for `thin`
- Simplify code by explicitly writing out zero-padding steps
- Change bitwise & to logical &&
- Eliminate generic `error`s for exceptions, esp `KeyError`s

TODO: `thin` should probably be a keyword argument.
TODO: remaining `error`s need a new `DomainError` constructor
Clean up Hermitian matrix routines
Cleanup diagonal routines

- Inserts checks for singular elements where necessary.
Cleanup dense matrix routines

- Eliminate redundant `return`s
- Consolidate `kron` methods
Clean up Cholmod wrappers

- Eliminate generic `error`s
- Eliminate methods that can be replaced by default arguments
Cleanup bidiagonal routines

- replace `error(string(...))` with interpolated error
- use `apply` to choose arguments to constructors/LAPACK calls
Cleanup Bunch-Kaufman routines