[move-lang] typing rules for calling a friend function
[move-lang] typing rules for calling a friend function

- functions in the same module can call a `public(friend)` function
- functions in a different module (A) can call a `public(friend)`
  function defined in module B only when B declares A as a friend.

libra/libra,aptos-labs/aptos-core,aptos-labs/aptos-core,aptos-labs/aptos-core,aptos-labs/aptos-core,aptos-labs/aptos-core,libra/libra,libra/libra,libra/libra,aptos-labs/aptos-core,aptos-labs/aptos-core,libra/libra