Merge initial swift work from neillc's fork.

Oh! I learned something new today :)