Only add image to queue if it was loaded

Previously if an "image" was found in the PDF that wasn't ever
successfully loaded (e.g. the width or height wasn't specified in the
PDF), the Pixels object be blank and still added to be processed, which
obviously was unsuccessful and a waste of time. It errored giving not
enough boxes detected, but didn't specify the filename. Now we just
don't process an image if it isn't loaded.
Statuses added to queue, RPC thread monitors queue

Instead of having the RPC website thread block until the form had
another status update, now if the form isn't done, we save the request.
The StatusThread in the RPC will wake up every time there is a change in
the status queue in Processor and complete the request waiting on that
form. This is the proper way to handle long request since the CppCMS
documentation specifically states, "It is important to remember that
every operation executed in the event loop should be very fast and never
block." Now we're not blocking in the event loop but in a separate
thread for each RPC application instance.

This allows Ctrl+C to exit the website immediately and then just wait
for the two thread pools to exit. Note that this may take a while since
an item in the extraction thread queue extracts the entire PDF. I have
yet to figure out a good way to cancel extractImages and parseImage.