Changed sizing method

Originally used byte_length(to byte_size(term_to_binary(...)) which
causes the binary to be generated. Per Jon Meredith, switched to
erlang:external_size(...) which does the size estimation without
generating the binary