Move functions to their own file

# File Structure Re-Org

The BackboneAgent was written to look like other injected chrom extension scripts. By that nature, all of the functionality was packed into four main files (logic, base, utils, data). These filenames made little sense and were very hard to scan. 

This PR, breaks backboneAgent into several smaller folders and sub-folders 

+ components
+ patches
+ utils
+ mariontte
+ watchers

## Before
```
.
├── app.json
├── base.js
├── build
│   ├── backboneAgent.js
│   └── localBackboneAgent.js
├── build.js
├── data.js
├── localBuild.js
├── logic.js
├── marionette
│   └── EventInterceptor.js
├── marionetteObserver.js
├── underscore-contrib.js
├── underscore.js
├── utils
│   └── watchers
│       ├── onObjectAndPropertiesSetted.js
│       └── stopWatching.js
└── utils.js
```

## After
```
.

├── app.json
├── base.js
├── build
│   ├── backboneAgent.js
│   └── localBackboneAgent.js
├── build.js
├── components
│   ├── AppComponentAction.js
│   ├── AppComponentInfo.js
│   ├── addAppComponentAction.js
│   ├── components.js
│   ├── getAppComponentInfo.js
│   ├── getAppComponentInfoByIndex.js
│   ├── getAppComponentsIndexes.js
│   ├── getAppViewInfoFromElement.js
│   ├── monitorAppComponentProperty.js
│   ├── patchBackboneComponent.js
│   ├── registerAppComponent.js
│   ├── setAppComponentInfo.js
│   └── util
│       └── sendAppComponentReport.js
├── localBuild.js
├── logic.js
├── marionette
│   └── EventInterceptor.js
├── marionetteObserver.js
├── patches
│   ├── patchAppComponentEvents.js
│   ├── patchAppComponentSync.js
│   ├── patchAppComponentTrigger.js
│   ├── patchBackbone.js
│   ├── patchBackboneCollection.js
│   ├── patchBackboneModel.js
│   ├── patchBackboneRouter.js
│   ├── patchBackboneView.js
│   ├── patchDefine.js
│   └── util
│       ├── patchFunction.js
│       └── patchFunctionLater.js
├── utils
│   ├── bind.js
│   ├── clone.js
│   ├── debug.js
│   ├── getHiddenProperty.js
│   ├── isArray.js
│   ├── isObject.js
│   ├── sendMessage.js
│   └── setHiddenProperty.js
└── watchers
    ├── onDefined.js
    ├── onObjectAndPropertiesSetted.js
    ├── onSetted.js
    ├── onSettedDeep.js
    ├── onceDefined.js
    ├── onceSetted.js
    ├── stealthOnSetted.js
    ├── stopOnSetted.js
    ├── stopStealthOnSetted.js
    ├── stopWatching.js
    └── watchOnce.js

```