Allow operations between FOURTECH and CHEBTECH.

This branch allows operations `+,-,*,/` between chebfuns based on `fourtech` and chebfuns based on `chebtech`. 
Following a suggestion of @aaustin141, I've added two abstract classes `nonPeriodicTech` and `periodicTech`, both being subclasses of `smoothfun`. A `periodicTech` is a representation of a smooth function on [-1,1] using a basis of periodic functions, while a `nonPeriodicTech` uses a basis of nonperiodic functions. 
A `nonPeriodicTech` can indeed represent a periodic smooth function. 
The class diagram is now:

```
[<<SMOOTHFUN>>] <-- [<<PERIODICTECH>>] <-- [FOURTECH]
                <-- [<<NONPERIODICTECH>>] <-- [<<CHEBTECH>>] <-- [CHEBTECH1]
                                                             <-- [CHEBTECH2]
  ```

When doing one of the operations `+,-,*,/` between a `nonPeriodicTech` and a `periodicTech`, the result is automatically a `nonPeriodicTech`.