Handling of arbitrary real intervals [a,b]

Extended the existing code to handle arbitrary intervals [a,b]. Also
adjusted the class organisation to (a) both more closely reflect the
class structure of the original Matlab project, and (b) set the scene
for future support regarding the approximation of piecewise smooth
functions a la Chebfun v2.0.

More specifically, in the Matlab project, a "Chebfun" object consists of
one or more "Fun" objects, each "Fun" being a single-piece Chebyshev
interpolant on [-1,1], coupled with information about the domain of
definition [a,b]. I have been through what was previously constituted
the class "Chebfun" and changed this to "Fun", implementing along the
way all the adjustments necessary for handling of arbitrary intervals.
In order that the original user interface is retained, I have redefined
the class Chebfun to inherit from Fun. (Note, though, that inheritance
probably does not make sense as a way to implement a representation of a
collection of piecewise smooth Funs.

From the user's point of view, I don't think anything should have
changed.