Normalise an IM address so that it's suitable for string comparison.
IM addresses for various protocols can be represented in different ways, only one of which is canonical. In order to allow simple string comparisons of IM addresses to work, the IM addresses must be normalised beforehand.
If the provided IM address is invalid, Folks.ImDetailsError.INVALID_IM_ADDRESS will be thrown. Note that this isn't guaranteed to be thrown for all invalid addresses, but if it is thrown, the address is guaranteed to be invalid.
the address to normalise
the protocol of this im_address
if the provided IM address was invalid