VDL codegen for Swift.

The codegen is largely complete. The following are missing:

- Generating const values for type Any
- vdl.Type support for VOM reflection/introspection
- TypeObject support, which requires vdl.Type
- Native type support for Time/Duration type mappings.
- Param support for Errors
- RPC support, which requires VOM.
- Proper integration with Xcode

Reach:
- A post-process code re-formatter to make the generated code have
  the correct spacing, etc.

Notes:
- Currently v23 won't compile until we have support for migrating
  away from v23's types that use reserved words in Swift. This
  will come in another CL.
- We don't support the fixed length VDL type explicitly -- instead
  that gets deferred to VOM. The reason is that Swift's type system
  cannot express a fixed length array, so we can only error at
  runtime. If we are to error at runtime, then we must either wrap
  arrays and monitor their length, or use getter/setters to monitor
  the length there, or enforce at VOM. The last option is currently
  preferrable as it allows for VDL generated code to be more idiomatic
  by directly using Arrays. This might change in the future.

MultiPart: 1/4
Change-Id: I15ec205070a9358ee8a342dffc53f225fb5ef737
25 files changed
tree: e913e3172b63a5eb8729af2d5bcf62f0ac1abf58
  1. clang/
  2. demo/
  3. lib/
  4. .gitignore