Automatically unify named captures with variables

Using =~/2 with named captures causes the named captures to
automatically unify with variables of the same name in the surrounding
scope.  This gives a powerful mechanism for accessing captured values.

Closes #9