Changes to allow Live Listener to replay historic data from SMS

This is just the first cut - few more minor changes are still needed.

Refs #6661
GUI changes to the StartLiveData dialog

Changed the layout of the radio buttons, added "UTC" to the absolute
time label and added code to limit the times the edit box will accept

Refs #6661
Fix GUI problems in RHEL 6 builds

The previous GUI changes used a function that wasn't available in the
version of Qt that comes with RHEL6.

Refs #6661
Change handling of RunStatus packets

Refs #6661
Add code to validate requested start time for live listener

Added code to LoadLiveData.cpp to validate the time string for the
requested start time.  Also use the epoch time for the "start from
now" option (instead of using the current time).  The epoch time gets
converted to 0 when passed to SMSD and SMSD handles that a little more
efficiently than passing it the current time.

Refs #6661
Delay initialization of the live listener

Don't perform the final initialization steps for the live listener until
the first BankedEventPacket arrives.  We don't need to complete the init
steps any earlier and waiting as long as possible ensures all the device
decriptor and variable value packets have been processed.

Refs #6661
Don't initialize live listener without required log values

Parse the instrument definition XML looking for nodes named 'logfile'
that are children of nodes named 'parameter'.  Record the 'id' attribute
for these nodes.  Prior to executing the LoadInstrument algorithm,
verify that we've received values for each of logs.

Refs #6661
Don't let the live listener block the main thread indefinitely

Limit the amount of time the main thread will block inside extractData()
waiting for the live listener background thread to initialize.

Refs #6661
Ensure that the live listener background thread always exits

If the user canceles the live listener algorithm at just the right time,
it was possible for the background thread to be stuck in a loop waiting
for something from the foreground thread and thus the thread would never
exit.  This change adds a couple of checks to make sure the background
thread won't get stuck.

Refs #6661
More cleanups to the Live Listener init process

Added checks to see if we could complete the init process to several of
the rxPacket() functions.  Also, if the user requests data from the
start of the current run and we're not actually in a run, we'll throw an
exception with an appropriate error message.

Refs #6661
Don't set m_workspaceInitialized to true in exception handlers

Originally did this to prevent us from blocking indefinitely waiting for
an initialization that would never happen, but that code has since
changed and modifying m_workspaceInitialized is no longer desirable

Refs #6661
Merge remote branch 'origin/feature/6661_LiveListenerDataStart'