Updating base widgets

- adding docs to base widgets
- few api changed to make base widgets easier to use
- making sure tests are still passing
- removing plone/zope related code from base.py module