Query event implementation

Per request of @williamtdr 

Each time the Query information has to be regenerated, a QueryRegenerateEvent will be triggered.
This allows plugins to modify some of the information that is sent on queries, or add custom / extra data to queries.