Systematize + and - over special matrix types.

Introduces base/linalg/special.jl for methods that mix matrix types, to
avoid current order-of-definitions dependency issues.

Ref: Calendar.jl#29
Merge branch 'master' of https://github.com/JuliaLang/julia