I'm kinda wondering if we should change these around:

* `external_name` returns the name we should pass to Mixpanel, no matter what (_e.g._, just make it return `@external_name || full_name`);
* `full_name` always returns the canonical, guaranteed-unique internal name (prefix + category + event name) that we use internally for referring to it.

The reason I'm thinking about that is that my first reaction was: uh-oh, in places like the JavaScript Frontend Events support, we end up using the event's `full_name` to refer to it. And it turns out we actually don't, but I think having these be very clearly distinct (`full_name` = programmatic usage, `external_name` = for Mixpanel only) would be really helpful. That way, even if users do things like setting duplicate `external_name`s for two different events (particularly easy to do if you use a `lambda`), while their Mixpanel results may get skewed, they won't end up breaking MetaEvents in some really painful/complex ways.