------------------
* Make placeholder terms for hidden / missing items, so that you can still see
something in the editing interface and not accidentally remove them. Ideally
we should say if a page is invisible or missing, but not today.
[lentinj]
* Use javascript function from plone.formwidget.autocomplete to add new input
boxes, make javascript as clone-safe (when making new rows in datagridfield)
as possible
[lentinj]
* Just use full widget name in ++widget++ URL, don't try and strip form prefix
off. If within a subform, this is the wrong thing to do and the traverser now
supports stripping the initial 'form.widgets'
[lentinj]
* Workaround for sources being used without being bound first.
[lentinj]
* Check the request for context before falling back to getSite()
[lentinj]
* Add a UUIDSource that stores plone.uuid pointers to content.
[lentinj]
* Use tokens as full URL of content, move all token<->value operations into the
source. Rename methods so that actually-public methods have public names
[lentinj]
* Alter terms so that token is the full path to an item, value is the path
without portal_url that is stored in the DB. This means all the path parsing
can be kept within the source.
[lentinj]
* _filter is used outside the source, so not an internal helper function
anymore.
[lentinj]