Added AnnoyingMessage#Replacement, which holds information about a replacement
Added #splitterPlaceholder which will keep the parameter placeholder splitter cached
#replacements is now a Set<Replacement> instead of a Map<String, String>
Reorganized some methods
Parameter placeholder replacements will no longer be processed immediately. This will ensure that all parts of a message (sub-messages, JSON components, etc...) will get the replacement processed.
Will no longer use PluginManager to reload the plugin. Instead, it will only reload AnnoyingPlugin#messages and then run AnnoyingPlugin#reload(), which a plugin using the API can override.
Instead of doing annoyingSender.argEquals(0, "string1") || annoyingSender.argEquals(0, "string2"), you can now do annoyingSender.argEquals(0, "string1", "string2")