Rewrite rap-worker script in an optimized fashion

It now does much less directory reading, and performance should
scale far better with large numbers of recordings.

Semantics should be mostly unchanged, but there's greater use
of '.fail' files to mark errors, and '.done' files are now removed
after all of the following processing steps complete.

The rap worker no longer relies on processing scripts leaving
behind empty directories; those are now removed where appropriate.
bbb-record: Update 'rebuild' command for new rap-worker

The new rap worker relies only on .done files for triggering, rather
than the absence of process/publish directories.
record core: Remove hardcoded ffmpeg path

The ffmpeg binary should be looked up using the normal PATH mechanism,
it might not always be installed in the same place.
bbb-record: Improve steps done in --delete and --deleteall

It's now done in an order that should be less likely to cause
issues with a concurrent rap-worker process, and the files
deleted by --delete and --delete-all are now the same.
rap-worker: Set log level to 'INFO'

I had it on DEBUG temporarily for testing. The old version used ERROR,
but this made it print virtually no output which made diagnosing
issues difficult.
rap-worker: Ensure status directories are created

In some cases, it was attempting to create a status file in a directory
that did not exist yet.
recording: Add a 'mkclean' step to video generation

The 'mkclean' tool reorganizes the encoded webm file to optimize it for
streaming. In particular, it moves the index to the start of the file.

This fixes streaming in Chrome, which otherwise had a very long delay
before playback started since it downloaded until it saw the index
before it started playback.

This needs a new dependency added to the bbb-record-core package to
pull in the mkclean tool.
 - don't throw exception when external userid is not found as the user might have acutally left the meeting
 - change message name
 - try and fix issue where mute button isn't showing up
 - fix raise condition between setting the user has joined the voice conf and the joined voice event
 - fix muted/unmuted icon
 - fix race condition on setting mute user
Merge pull request #345 from kepstin/recording-updates-merge

Recording updates merge
 - update copyright year
 - move button so that it's not overlapped by whiteboard toolbar
Merge branch 'merge-polling-with-master' of github.com:bigbluebutton/bigbluebutton into merge-polling-with-master
 - blur mic image when user is talking
Omit directors for bbb-conf --debug
Minor updates to readme for GitHub