Accept binaries as struct keys.

Have store_val accept a binary as the key, and use the same
binary_to_existing_atom path to make sure that they get created as atoms
when appropriate (i.e. the same as from_json).