first past at FrameworkTask: success!
stop unnecessarily providing absolute SDK path
be smarter about determing swift vs. swiftc
remove redundant local variable
extract framework structure task lib
framework_structure_task: memoize accessors
framework_task: extract object file compilation into new method
prefer File.join over manual string formatting
Add support for linking C and Swift object files

- Compile C sources
- Copy headers into framework bundle
- Define a framework module map
- Link both C and Swift object files into framework executable
allow swift code to reference C code in the same framework

- with this change, Hello.swift can no longer be compiled as part of the
  'Hello' swiftmodule, and so stuff is broken there
- also, the definition of whether "swiftc_task" is needed may not be
  quite right, as it has no notion of the .swiftmodule or .swiftdoc
  files.
use file_create instead of file tasks for creating symlinks
remove Hello swiftmodule task and rename {Lightspeed => Hello}.framework
add SymlinkCreationTask with correct timestamp/needed semantics
use a default file pattern for framework tasks
create framework modules path if header files or swift sources exist
add failure message if framework matches no source files
only construct framework underlying module if headers exist
use framework tasks instead of swiftmodule tasks
update todo.md
ensure frameworks become out of date when their dependencies change