fix #15: Improve BrowserMap JavaScript namespacing

* used IIFE extensively for BrowserMap related objects