Feature: `fig up` and `fig run` now start linked containers + new `auto_start` option

UPDATE: This PR implements #31 and adds an `auto_start` option to fig.yml.

I mostly write libraries, rather than complete applications. As such, I tend to depend on one or more "services" and also have an additional "console" environment where I test drive code that integrates with those services.

Using fig for this purpose isn't much more convenient than just manually using docker, since fig requires you to `fig up -d SERVICE` for each service, before using `fig run SERVICE COMMAND` to get into a console. That's more or less the native docker approach, with the omission of the need to pass flags like `-v` and `-p` repeatedly.

Summary of changes:

  * Added new `auto_start: false` in fig.yml to allow services to be skipped on `fig up`
    - services can still "link" to these, in which case explicitly starting that service will start this one too
  * `fig up SERVICE` will now start links if needed (only the linked services)
  * `fig up --no-links SERVICE` will just start SERVICE`, without starting links
  * `fig up --keep-old` will not recreate containers if they already exist (it may start stopped containers though)
  * `fig run SERVICE COMMAND` will now start links if needed, as per `fig up`
    - this implicitly uses `--keep-old` for the internal `fig up`
  * `fig run --no-links SERVICE COMMAND` will just run COMMAND without starting links

Any criticism of my newbie python code would be welcomed and acted upon.

Considerations: Is `--keep-old` a good name? Perhaps `--preserve-old` sits better? Or just `--preserve`.
Yep, sounds good. I actually considered that initially, but realized it was going to be more work, since the logic around checking if any containers are already created `len(service.containers(stopped=True))` would need to be duplicated here.

Perhaps the contract of `Service.start()` could be changed to create containers if there are none. Then it becomes:

``` python
for service in self.get_services(service_names, include_links=start_links):
    if keep_old:
        for (_, new) in service.start():
            new_containers.append(new)
    else:
        for (_, new) in service.recreate_containers():
            new_containers.append(new)
```

Or maybe just duplicating the container count check is ok.