Ensure that size() doesn't add the referent's size for non SVt_RV references.
Previously it was adding the referent's size if the reference happened to be
other-than-SVt_RV (ie a blessed reference, or a reference assigned to a
previously used variable).
This requires stopping thing_size() from recursing into references when called
from size(). So add a boolean parameter controlling whether to recurse. As this
means changing every call to it, also rename it to sv_size(), and re-order the
parameters so that struct state is first.