Fixup broken bundle alias.

Bundle was incorrectly saving mutable state at BUILD file scope instead of
per-use scope.  This change adds a factory method at the BUILD file scope
(parse_context), and collapses the __init__ and __call__ into one. This is both
clearer and now not broken.

Add a test to exercise this - creating >1 bundle in a BUILD file.

In the course of adding this test, find an fix a bug in BuildFileAliases.merge.
Consequently, add a comprehensive test for BuildFileAliases.