Argument validation

Add argument validation with java7 objects.requirenotnull
Some basic IRCUser validation
NullPointerExceptions instead of IllegalArgumentExceptions