Use Bindings type synonym where possible.
Avoid writer monad (fix #72).

Commit 1c19757fdc6d156d326ae9b2dfb1c7a84c4f37a1 introduced a memory leak
by using a Writer monad to collect the exported bindings of a
module. This would create a big thunk (growing with the number of >>=
calls? arranging for lots of mappend mempty mempty to be executed in the
future?)

This commit attaches a boolean exported-or-not flag to every binding in
scope and thereby arranges for the exported bindings to be collected
with the state monad that is already in the monad transformer stack.

Thanks to Paolo for help with diagnosing the memory leak.