Start from the beginning in Swift

Merge the swift-experimental branch to master. It's not finished yet, but master is old and possibly has even more problems.