Use BeautifulSoup instead of lxml (issue #284)

This is a new PR made from a new branch b/c I had merge conflict problems. lxml is now removed completely, there is only one problem remaining: one failing test I can't explain:

        def test_empty_return(self):
            # test for empty return with an object from the North
            eso = Eso()
            surveys = eso.list_surveys()
            #result_s = eso.query_survey(surveys[0], target='M51')
            # Avoid SESAME
            result_s = eso.query_survey(surveys[0], coord1=202.469575, coord2=47.195258)
    
    >       assert result_s is None
    E       assert <Table rows=14 names=('Object')>\narray([('COSMOS',), ('COSMOS',), ('COSMOS',),...OS',), ('COSMOS',), ('COSMOS',), ('COSMOS',)], \n      dtype=[('Object', 'S6')]) is None

For some reason, the ``query_survey`` call returns (empty?) data even though none should be returned. Will invesitgate further later, time to sleep now ;-)