Feature FOURCOLLOC

`fourcolloc` is a concrete class that implements `colloc` using Fourier points for periodic functions.
I've also introduced an abstract class `chebcolloc` between `colloc` and `colloc1`/`colloc2`. 
Moreover, I've renamed the latter `chebcolloc1`/`chebcolloc2`. If @tobydriscoll (and others) disagree with this renaming, I can change back to `colloc1`/`colloc2`.
I've added tests in tests/fourcolloc for linear, nonlinear and system of ODEs.
Here is a very basic example. Fore more complicated examples, see tests/fourcolloc.

```
% Solve u' + u = cos(x), on [0 2*pi], with periodic boundary conditions.

% Set domain dom, operator L, and rhs f.
dom = [0 2*pi];
L = chebop(@(u) diff(u) + u, dom);
L.bc = 'periodic';
f = chebfun(@(x) cos(x), dom);

% Solve.
u = L \ f; 

% Exact solution.
exact = chebfun(@(x) 1/2*cos(x) + 1/2*sin(x), dom, 'periodic');
norm(u - exact, inf)
```

```
ans =
     4.718727263764627e-15
```

If the boundary conditions are periodic, `\` uses `fourcolloc`, unless the user explicitly imposed `cheboppref.setDefaults('discretization', @ultraS)`, or passed a `cheboppref` object to solve the ODE, i.e. typed `u = solvebvp(L, f, pref)`.