Initial port of LINOP/NULL method.
Add support for and test other disc types.
Minor changes.
Fix a subtle bug in CHEBTECH/QR().

For speed we persistently store two matrices, WP and its inverse. The documentation claims these matrices depend only on the length of the dat, not the dat itself. This is sort of true, but they also depend on the type of CHEBTECH being used. Hence, using a CHEBTECH1 and then a CHEBTECH2 will produce incorrect results.

This commit should fix this. It's not elegant, but the lternatives involve splitting the built-in QR back out the both CHEBTECH1 and CHEBTECH2 (which is a lot of duplication) or take a hit in performance. The docs claim CHEBFUN2 relies heavily on QR for speed, so I'm hesitant to do that either. Instead I propose we live with this tiny bit of ugliness.
Merge branch 'fix-chebtech-qr' into feature-linop-null
Slightly better fix.
Merge branch 'fix-chebtech-qr' into feature-linop-null
Return empty rather than empty chebmatrix.
Merge pull request #1090 from chebfun/feature-linop-null

Feature linop null