Preliminary implementation of the SimpleSDN* application

This is the first complete implementation of all components of
the simple SDN application. As of this commit, the controllers
periodically ping each other and elect a leader on the highest
controller ID. In addition, controllers also periodically ping
the switches, though at a much slower timescale. Then, each
switch verifies that no more than one controller contacts it
at any given time, otherwise it throws an exception.

The obvious next step is to create a sample simulation that runs
these simple SDN applications.