Restrict; Recursive Subdivision Rootfinding

Added functionality allowing a user to restrict a chebfun to a
subinterval of its definition and added a series of corresponding unit
tests. Also added a new implementation of self.roots() which utilises a
recursive subdivision approach. The rootfinding unit tests all pass as
before.