Made the saving of profile images safer

Profile Images are no longer saved under their name as a string,
but instead are saved as a hexidecimal representation of their name
in UTF-8 encoding. This is so that profile image filenames are
still unique (as names must be unique), as well as removing the
possibility of characters that might lead to an invalid or
dangerous filepath.