Add external command support

Okay, this is still a work in progress, but I want to chat about it.

This is a thin API for controlling external processes inside Middleman. Basically, it let's you boot Grunt in watch/build mode and use that to feed content into the sitemap. The API looks like (using Ember's Broccoli CLI as an example):

```
activate :external_pipeline,
  name: :ember,
  command: "cd test-app/ && ember #{build? ? :build : :serve} --environment #{config[:environment]}",
  source: "test-app/dist"
```

We start the command, async in server mode, sync in build mode. Then we merge the results of some temp folder into the sitemap (BTW, I'm using this feature to explore a simpler API for "multiple source directories" which basically just means merging multiple `OnDisk` sitemap instances.