Remove `proc` types from the language

They are replaced with unboxed closures.

cc @pcwalton @aturon 

This is a [breaking-change]. Mostly, uses of `proc()` simply need to be converted to `move||` (unboxed closures), but in some cases the adaptations required are more complex (particularly on the consuming side). 

The commits are ordered to emphasize the more important changes, but are not truly standalone.
s/closures/closure/