Rename S_stashpvn to S_gv_stashpvn_internal and add to embed.fnc

S_stashpvn was not added to embed.fnc properly, and is named contrary
to general expectations of the Perl internals.

This fixes that, there should be no other functional differences.
introduce gv_stashsvpvn_cached()

Wrap gv_stashpvn_internal() with a routine which caches
what it does, and rework gv_stashsv() and gv_stashpvn()
to use the cached codepath.

Also rework the documentation of gv_stashsv() and gv_stashpvn()
that the gv_stashsv() is prefered as there is a mechanism to cache
the hash value associated with the name which requires an SV
to passed in as an argument for caching purposes.

Note this is a reworked version of sybers original patch.