Created a new package that will contain the map creation code.

Currently contains a test node that publishes a checkerboard map
Can make simple 2D maps. Not using probabilities though so
pretty noisy and lots of false occupancy. Also I am not clearing spaces
which the laser beam passes though.
Marking unoccupied cells by rasterizing the beam onto the map grid.

Still not using the log odds or inverse sensor model. So the map
is noisy, but the basics are working
Created the outline of the program that will determine the sensor
model parameters using the EM algorithm from page 160
of the probabilistic robotics textbook.

Launches the robot facing a wall. The parameter learning node
gets the wall pose and saves a specified number of scans to run
through the EM algorithm.
Created a model plugin that publishes the wall info as a visualization
message. This allows it to be displayed in RVIZ and the sensor model
learner can now get the exact wall position, orientation and size
Can now set a static spin rate, tilt angle and pan angle in all
launch files
switched to using the box_info topic to get the wall pose and size
Can now calculate the intersection distance according to the map
EM seems to be working. Need to save the params to a file
and clean up the code. Some of the functionality will be useful
in the other programs using the sensor model
Moved most of the functions to a header file. Still could be cleaned up
a lot more
Separated out the em node's specific code from the more
general parameter class and functions.
Added functions that save and load the params via yaml files