Added class description
Added documentation to signal class and some basic naming conventions
Moved constructors/destructor to the top of public region
Public/private sections now has identation

Logic says that public/private sections should be treated just as labels.
But remove they identation make them harder to see, so this time, we are
going to stay practical.