Minimize the SHAMap public interface

Remove unused methods the SHAMap interface.  Make private those methods
that can be private.

Removed SHAMap methods:
 - bool hasNode (const SHAMapNode & id)
 - bool updateItem (const SHAMapItem & i, bool isTransaction, bool hasMeta)
 - uint256 getHash ()
 - bool isImmutable ()
 - void setFloating ()
 - void setSeq (std::uint32_t seq)
 - std::uint32_t getSeq ()
 - bool operator== (const SHAMap & s)
 - std::list<Blob > getTrustedPath (uint256 const & index)
 - static Blob checkTrustedPath (uint256 const & ledgerHash,
                                 uint256 const & leafIndex,
                                 const std::list<Blob >& path)
 - std::list<fetchPackEntry_t> getFetchPack (SHAMap * have,
                                             bool includeLeaves,
                                             int max)

Privatized SHAMap methods:
 - SHAMapTreeNode::pointer fetchNodeExternal (const SHAMapNode & id,
                                              uint256 const & hash)
 - SHAMapTreeNode::pointer fetchNodeExternalNT (const SHAMapNode & id,
                                                uint256 const & hash)
 - bool getPath (uint256 const & index,
                 std::vector< Blob >& nodes,
                 SHANodeFormat format)
 - void dump (bool withHashes = false)
 - SHAMapTreeNode::pointer getCache (uint256 const& hash,
                                     SHAMapNode const& id)
 - void canonicalize (uint256 const& hash,
                      SHAMapTreeNode::pointer&)

Also removed a number of std::c/ref() invocations that are no longer
needed.  Both std::make_shared() and std::bind() use perfect forwarding
in C++11, so they no longer need std::c/ref().