restructure urldb source

remove forward declarations and restructure. exported functions are
also now documented in the urldb.h header.
Do not attempt to convert an empty url on RISC OS menu click

When updating the RISC OS frontend to using nsurl for its menu
operations (as part of getting rid of url_nice) the check for
null (empty) url strings in the url under the mouse was omitted
leading to a crash.

Additionaly a use of url where current_menu_url was intended was
missed leading to crashes when "open in new window" was used.
Change contextual content retrieval to browser features.

Update the API which allows frontends to acquire the page features
(images, link urls or form elements) present at the given coordinates
within a browser window.

By making this an explicit browser_window API and using the browser.h
header for the associated data structure with a more appropriate API
naming the usage is much more obvious and contained.

Additionally the link url is now passed around as a nsurl stopping it
being converted from nsurl to text and back again several times.
fix typo in cocoa frontend context cleanup