Use rb_type for type detection in mochilo_pack_one

In ruby 2.x Floats are immediate objects and do not have a separate
type, this caused segfaults as Mochilo was not checking for FLONUM_P
before calling `BUILTIN_TYPE` on the immediate float which tries to
dereference the object.

This changes the logic to simply use `rb_type` which eliminates the need
for special cases for immediate objects, it handles immediate objects
already and falls back to `BUILTIN_TYPE`.