adding a delayed feature, so briefings dont have to be hard coded

I need to be able to hit an API (in my case the AWS API) to determine which hosts to deploy to, for which environment (this data is in AWS tags). As it stands now, start() is called immediately, which doesn't allow for any asynchronous calls to happen (apis, databases, etc). This feature adds a few methods, and a condition to the start() function so if needed, you can delay the start until your ready (```plan.flightRead()```). This does not change the default behavior.

**usage**:
```javascript
// create an instance
var plan = new Flightplan();

// define this plan, with a max delay of 5s, and checking every 100ms if we are ready
plan.delay(5000, 100);

// do something asyc to get the flight briefing, setTimeout used for simplicity
setTimeout(function () {
  plan.briefing({
    destinations: {
      'production': [{
        host: 'localhost',
        username: 'test',
        agent: process.env.SSH_AUTH_SOCK
      }]
    }
  });

  // run commands on localhost
  plan.local(function (local) {
    local.log('...');
  })

  // now that I have a briefing
  plan.flightReady();

}, 1000);

```