DSL: Move DSL onto World extension

The Swift DSL class functioned as a container for a group
of class methods. This means that an instance of DSL could
be instantiated using `DSL()`--something that made no
conceptual sense.

Instead, move DSL methods onto a category on World. Also:

- Move DSL-related files into a DSL directory.
- Add documentation to all Swift DSL, and some Objective-C DSL.