laser-lines: node to detect lines in laser data

This is the node skeleton from roscreate-pkg and minor changes.
laser_lines: ported basic program from Fawkes laser-lines plugin

This node reads a laser scan topic, converts the scan to a point cloud,
and detects and publishes lines. It also publishes informative output
for visualization.
laser_lines: publish original data timestamp
laser_lines: post-process lines to filter large gaps

Even though we set the max sample distance for drawing samples, once
the line coefficients have been determined it takes all points which
could "support" the model, that is all points whose distance is closer
than a given threshold. But this means that when detecting points say on
some furniture item and then on the other side of the room at a wall it
will still use these points for the line, causing large jitter.

We now post-process a line by looking for the largest consistent cluster
within the line support points therefore eliminating large gaps and
distant points. That drastically improves stability and makes the length
calculation accurate.
laser_lines: configurable min distance to point on line

Reject lines if their point on line is below this threshold.
landmark_frame: publish landmark based on laser line intersection

This node reads a list of known landmarks from a configuration file and
if detected publishes an appropriate landmark reference frame via tf.
Landmarks are defined in relation to intersections of lines published by
the laser_lines node. Landmark become valid in certain regions of the
map. Then, intersections detected will be compared to the reference
intersection from the configuration file in the map frame. If found and
accepted, a configurable offset is added and the proper orientation is
calculated based on a reference orientation in the map frame, and the
correspondence of one of the lines to map frame axis and its rotational
shift.

Assuming sufficiently low sensor noise (typical for laser scanners) this
gives a more stable reference frame than when relying on the
localization for proper localization in the map frame.
kbsg-kitchen: example configuration for the KBSG Kitchen
landmarks-kbsg: add launch file to run KBSG configuration
README: add basic information about the package