Merge initial swift work from neillc's fork.

jslint will complain about the lack of whitespace here :)