Remove all nicks from model when leaving a channel and fixes

Added the functionality to remove all the nicks from the channel
when we leave it. This exposed some crashes from some Nick
objects that were being called after they had been deleted.
So, I protected those with some if statements.

Also, I added a delayed reset timer so we don't reset on every
insert, I'm hoping to find a way to fix fastinsert to avoid this.
Worst case scenario, I can switch to using a QMap, but I'll try
a few more things first.