Copy properties before heading off into the background in case the passed in dictionary is mutable.

If you tell Mixpanel to track an event with a properties dictionary that is mutable, Mixpanel will take it into a background thread, and as a result it's possible to get a crash on "collection was mutated while being enumerated".  (`NSMutableDictionary` objects are not threadsafe)

Calling `copy` on an immutable dictionary simply sends it a `retain` message, so the performance overhead is negligible in most situations.