changed the way aliases are handled

(added another decorator)
a sweeping change to counter vocabulary pollution

Previously, everything exported by a src/vocabulary/*.coffee module
ended up as part of the APL vocabulary and therefore was unintentionally
accessible to APL code.

After the changes, in order to add to the APL vocabulary, a module has
to explicitly set a property on its @vocabulary object:

    @vocabulary[key] = value

as opposed to just

    @[key] = value

Vocabulary pollution can be observed by pasting the following code in
the web demo or running it as a script with bin/apl:

    #!/usr/bin/env apl
    ⎕ ← «
        (function () {
            var r = [];
            for (var k in _) {
                r.push(k);
            }
            return r.join(' ');
        }())
    »