Add a.out to .gitignore and also store Builder by value

The reasoning here is analogous to why most std libraries take their templated operator by value: it allows the operator to maintain state.  In my particular case, I need the builder to change modes while parsing (switching from a "module globals" mode to a "function" mode).