Amend RFC 48

The original definition of public items was based on reachability rather than simply checking whether the item is declared `pub` or not.  The RFC also did not describe how privacy and `impl` definitions are related. 


My thinking was that trait `impl`s do not create items which can be referenced in APIs. You refer to the *trait* and its methods; these are then *resolved* during typechecking (not name resolution!) to a particular impl (if possible), but this happens behind the scenes and is opaque to the code doing the referencing. Is this point of view Haskell-centric and not true in Rust?