avoid redundant translation of items during monomorphization

Currently, each time a function is monomorphized, all items within that function are translated.  This is unnecessary work because the inner items already get translated when the function declaration is visited by `trans_item`.  This patch adds a flag to the `FunctionContext` to prevent translation of items during monomorphization.
Could you explain why you can ignore the items every time we monomorphise? I would expect we'd need to translate the items once and ignore the rest of the time. Do we reach the items via some other path too?