Floquet example from Chebfun and Basic support for SIE

The SIE support is only for ChebyshevSpaces on [-1,1], but the aim is to expand. I'm not sure about all the method definitions in the code generation block with :Derivative and :Integral, but I'll look into them. The finite Hilbert operator contains a Chebyshev weight, because if it didn't then one would expect logarithmic endpoint singularities from integrating a constant and therefore wouldn't really fit in this infinite-dimensional framework. I hope this minor abuse of the definition will be allowed.

Basic usage right now:

x = Fun(identity);
d = domain(x);
H = Hilbert(d)
L = H + 4x;
B = ldirichlet(d);
A = [B,L];
u = A\\[1.]
a = sqrt(sqrt(5)-2)/2;
usol = (1+a^2)/(x^2+a^2);
norm(u-usol)

Basic usage for a LowRankFun kernel is also included:

x = Fun(identity);
d = domain(x);
H = Hilbert(d);
f = LowRankFun((x,y)->exp(x-y)./(1+x.^2+y.^2));
rank(f)
L = (H^2)[f] + 4x;
B = dirichlet(d);
A = [B,L];
u = A\\[-1.,1.];
length(u)

I don't know the analytical solution, but the algorithm converged to something because length(u) is small.

Tests all passed because it's mostly new code.