Added a whole bunch of doxygen documentation.

Status Name Job ID Coverage
  Test
passed clang-c++11 #3631
Linux

00:21:13

passed clang-c++98 #3633
Linux

00:21:33

passed gcc-c++11 #3630
Linux

00:05:31

passed gcc-c++98 #3632
Linux

00:05:53

passed macos-c++11 #3634
Apple

00:14:41

passed macos-c++98 #3635
Apple

00:08:21