[core] Check if running with root privileges

* If running as root, print an error message and exit. This check will
not work on Windows.
Merge pull request #495 from Erethon/feature-check-root

[core] Check if running with root privileges
Rework track_modes
Remove errant prints
Add an `.is_nick()` function to the Nick class

Enables easier checking for whether an identifier is a nick or a
channel. Closes #281.
Release version 4.3.0
[__init__] Add -git to version number
[calc] Update unit tests to accept new format from WA.
[core] Improve command match regexp.

- Someone broke the command regexp by using prefix r"\.|\!". It didn't work
  as expected and instead split the whole regexp into two. Adding a
  non-capturing group around regexp should avoid this in the future.
slower channel joins on start to avoid flooding

throttling channel joins on start up are optional.
no throttling of channel joins on start up will be done if the core option 'throttle_join' is not configured.
Merge pull request #500 from ncolton/throttle_join_on_start

slower channel joins on start to avoid flooding
Merge remote-tracking branch 'upstream/master'

Conflicts:
	willie/coretasks.py