add ping plugin feature

I didn't realize this was going to include all of these commits. I'll go back and split them, but I wouldn't mind some comments on these commits in general. (and the most recent one for the ping plugin in particular)