Checkpoint on main integration.

Tasks @T65 @T66 : Integrated sim_core and bcp_server to into the
main program. Still need to add output logging and some way to
manually stop the beast on command.
Added timed or manual control for run duration.

Task @T70 : Added a configuration parameter "run_time", which is
the desired run duration in seconds. If zero, it means run until
manually canceled by the user. If undefined, the default run is
one second. Next up is the output writer for the simulation.
Corrected simengine/Makefile to build main last.

Task @T70 : DOUH! main was being built second, before almost all
the modules it needed to run. This was a legacy error from many
months ago. Corrected and tested.
Cleaned up message handling in bot_mk1.

Task @T70 : While playing with controlling a bot by connecting
to simengine using telnet, it was discovered that null messages
could segfault the bot message handler, and that the reciever
was unnecessarily sensitive to line endings. A coouple of simple
changes made bot_mk1 (and therefore the system) much more robust.
Cleanups for simengine main() integration.

Tasks @T67 @T68 : Completed an initial simulation output writer
and cleaned up the program shutdown. Starts and runs clean, logs
all the data and properly accepts BCP connections. This should
complete story 24.
Added the ability to suppress writing of empty quantas.

Task @T71 : During review, it became obvious that writing sim
output when there are no objects present is a waste of time and
space. I added a new configuration parameter, "write_zeros". When
true (1), all simulation quanta are logged; when false (0) writing
is suppressed when there are no objects present in the simulation.
Tested and ready to go, including configuraiton file updates.
Merge pull request #18 from fpstovall/main_integration

Main integration -- first working simengine!