Swift

This adds support for generating Swift projects.

Yeah, I know, _finally_.
I didn't want to do `--objc` because that introduces a weird state where you could theoretically pass `--swift` and `--objc` at the same time, and the outcome would be totally determined by the order that you pass the flags. Given that it actually is a binary choice (we don't support other languages), using a boolean flag made more sense to me.

That being said, I was thinking about this on my way home yesterday, and there's a chance we could make the entire thing more flexible by using top level dictionaries for the language name, and then using a `--language=` flag on the command line to choose. This _could_ also be used to create non-language specific project templates. For example, given this structure:

```yaml
app_target_groups:
  empty:
    - <%= project_name %>:
```

you could _theoretically_ pass `--template=empty` to the executable, and have liftoff use the proper structure. That would change the entire concept of `language` to `template`, but that's probably closer to what we're doing anyway.

The issue here would be that (when implemented the simplest way possible) overriding the `app_target_groups` key would mean having to reproduce all of the other templates. Ideally, we would use some sort of Programming Magic to make that key (and the unit test target groups) stackable. So if you added an `empty` template to the app target, you'd still get our `objc` and `swift` templates for free.

I think I've totally talked myself into this idea. Good job, me.