watch would run multiple times before kicked off build finishes

Fixed watch running multiple times by using invoke w/callbacks that
toggles building flag
Fixed extension permission error by adding underscore .map file to web_accessible_resources.
Moved api/xhr calls to separate class