moved ISource and TextEditable to a separate package (removes lxml dep)