Don't rely on __build_class__ for subclassing.

We now use a new function, __dg_build_class__, which behaves exactly the same way as the original __build_class__, but takes a namespace (+ some stuff such as __qualname__) instead of a function.

The benefits of this are:

  1. we don't have to create a new function with the sole purpose of copying the local namespace of a closure;
  2. `__build_class__` became unusable from Python code by 3.4 because it implies that a function passed as its argument uses STORE_NAME, which is never true neither in Python (STORE_FAST) nor dg (STORE_DEREF.) `__dg_build_class__` is perfectly usable.

Note that since we use `locals()` to copy the local namespace once again, `subclass`

  1. will copy non-local variables into the class if they are used by anything in that class;
  2. will copy contents of the global namespace into top-level classes instead of creating empty ones (use `subclass ... where ()` if that's the desired behavior.)