extend.myNamespace now returns the namespace, not the extend method
extend.myNamespace creates a new namespace if not given one to extend
Pseudo-lazy evaluation

Utilizing the existing shared examples to test a variable that is
*created* during spec evaluation is impossible without lazy evaluation.
(Since the shared examples function accepts the variable in question and
essentially writes new examples with the variable in question already in
scope.) One way of getting around this is to hang all the
shared-examples-arguments off of a context object. This context object
is kept in scope via a closure in the example group. This allows any
necessary properties to be set on the context object during the course
of spec evaluation and they will be accessible in both the beforeEach
function and the shared examples because the context object is in scope
(via the closure).

However, the 'this' object (in Jasmine, the 'Spec' object) is shared
among all executing examples. Instead of creating a dummy context object
as a carrier, we can just hang any necessary arguments off of the Spec
object. And since this is in CoffeeScript, that's just a matter of
prefixing the shared variables with '@'.

Now shared examples are capable of testing variables that aren't
initialized (or modified) until spec execution; in other words, lazily
evaluated.