FPMServer: Style and logging tidyups

Signed-off-by: Joe Stringer <joe@wand.net.nz>
rfclient: Make FPMServer non-static

This patch simplifies the code and makes it easier to reason about in a
basic object-oriented manner. This also opens up the possibility of
running multiple FPMServer threads to connect to different FPM clients.

Signed-off-by: Joe Stringer <joe@wand.net.nz>
rfclient: Make FlowTable non-static

This patch simplifies the code and makes it easier to reason about in a
basic object-oriented manner. This makes future refactoring easier, and
also opens up the possibility of running multiple FlowTable threads to
maintain routes from different sources (eg, kernel and FPM).

Signed-off-by: Joe Stringer <joe@wand.net.nz>
rfclient: Make header file naming consistent

*.cc, *.hh for C++ code and headers;
*.h for C headers.

Signed-off-by: Joe Stringer <joe@wand.net.nz>
rfclient: Make FPM a run-time option

Previously, to use the FPM interface the code had to be compiled with
the -DFPM_ENABLED cflag, which would disable the netlink route interface
and enable the FPM interface.

This patch removes the conditional compilation and adds a commandline
option to specify whether you wish to receive routes via NetLink or FPM.

Signed-off-by: Joe Stringer <joe@wand.net.nz>
rfclient: Ignore unnumbered interfaces

Previously we would crash on loading interfaces if there was an
interface without an integer 1-9 in it. This patch makes such cases be
logged to the console, then ignores the interface and continues.

Signed-off-by: Joe Stringer <joe@wand.net.nz>