Standalone presets and imagery.

Refactored the way iD loads list of Presets and Imagery, allowing users to supply their own during runtime.
What's the `break` doing here? In a naive reading,

```js
for (var key in d.tags) break;
  var value = d.tags[key];
```

Never runs the loop