Pike.identify_cycle: Fixed support for mappings and multisets.

References from mapping_data and multiset_data were not registered
on their corresponding mapping or multiset, but on the initial
argument to Pike.identify_cycle().
Build: Added lots of missing TYPEOF()s.
Build: Missed a few places in the previous commit.
Runtime: Unified struct svalue and struct fast_svalue.

Modern gcc (4.7.3) had aliasing problems with the two structs, which
caused changes performed with SET_SVAL() (which used struct fast_svalue)
to not be reflected in TYPEOF() (which used struct svalue). This in turn
caused eg casts of integers to floats to fail with "Cast failed, wanted
float, got int".

The above problem is now solved by having an actual union for the type
fields in struct svalue. This has the additional benefit of forcing
all code to use the svalue macros.

NB: This code change will cause problems with compilers that don't
support union initializers.
Build: Fixed support for combined type_subtype on 64-bit big-endian.