Add a class to help standardize tab widths in the UI.
Add a way to retrieve a .js file from a plugin dir

Reference as /pluginjs.php?plugin=PLUGINNAME&file=FILENAME.js in
the plugin PHP source.
Add Stephane to the credits page.
Support .mkv and bump max upload file size & timeouts.

Support MKV playback via omxplayer.

Bump max upload file size to 4 GigaBytes to allow large videos.

Bump timeouts to 300 seconds since a 4GiB file would take a while to
upload.
Update stage fppd binary.
Reset RTS when talking to DMX Open dongles.

This is mainly a mod on a patch by Stephane to clear the RTS
line to allow the Entec Open DMX dongle to work with our
USBDMXOpen.c driver.  Tested with a generic FTDI dongle and
it still works, so it seems we're safe to make this mod.

Rather than applying the mod in SerialOpen(), I am choosing
to go the safer route this close to a release and put the
code into a separate SerialResetRTS() function and call that
from USBDMXOpen_Open() rather than applying the RTS change
to all users of SerialOpen().  We may refactor again after
the release sometime.
Merge branch 'stage' of github.com:FalconChristmas/fpp into stage
Update stage binary for Entec Open DMX fix.
Delete "How to build image.docx" in favor of doc & script in SD dir.

We have an updated doc and script in the SD dir for creating a
new NOOBS image, so this file can be removed.
Playlist creation fixes.

Fix adding a playlist name with a space in it.  Previously the user
would have been required to reload the page to see the correct playlist
name since fppxml.php replaces the spaces with underscores, but the UI
doesn't know about that change.  Now, we do the underscore replacement
in JavaScript so the UI is in sync.

Fix the dropdown population code when we don't have any playlists defined.
This was fixed previously but still didn't work in the first-run case where
there were no playlists defined.
Update SD docs.
Plugin helper updates.

plugin.php can now be used to load .php, .js, and .css files:

plugin.php?plugin=PLUGINNAME&page=somepage.php
plugin.php?plugin=PLUGINNAME&page=somepage.php&nopage=1
plugin.php?plugin=PLUGINNAME&file=somefile.js&nopage=1
plugin.php?plugin=PLUGINNAME&file=somefile.css&nopage=1

Subdirs are supported as well for these, so you can keep your
js and css in their respective subdirs.

plugin.php has also been modified to automatically insert
tags to load any js/* and css/* files found in the plugin
directory when it is run in 'page' mode (ie, no 'nopage').
Settings fixes.

LogMask was not working with empty settings files and also
needed a jQuery related change.
Add Pre/Post fppd start and stop hooks for plugins.

If plugins need to run pre/post scripts before or after
fppd startup or shutdown, they need to have a scripts
subdirectory.  This subdir can contain up to four scripts
which will be called at the appropriate time:

scripts/preStart.sh  - called from fppd_start before fppd is started
scripts/postStart.sh - called from fppd_start after fppd is started
scripts/preStop.sh   - called from fppd_stop before fppd is stopped
scripts/postStop.sh  - called from fppd_stop after fppd is stopped
Plugin and daemon mode updates.

Add 'plugin' to the list of log masks parsed.

Fix and issue with daemon mode interacting with the plugin
callback system.  Daemon mode now uses the double-fork() method
to fully detach from the calling terminal.  Plugin callback
setup is now after the CreateDaemon() call.  Also fix a file
handle typo in plugins.c which may be related.

Add a couple debug messages for the plugin callback discovery.

I'll commit an updated binary after a final test on the Pi.
Memory Mapped Channel Block enhancements.

The Memory Mapped Channel Block code now understands string
directionality and wrapping as well as how many strings make up
the block.  This allows the simplification of the logic in
client apps that would write to these blocks including the
Perl module and the UI plugin to put text on a matrix or pixel
tree both of which are near completion.

The settings are similar to Nutcracker, including the orientation,
starting corner, string count, and number of strands per string.
Eventually we plan to allow importing of this information directly
from Nutcracker.
New stage binaries.

Include the plugin and memory mapped channel block changes
committed recently.  Also include a minor plugin error message
to log the name of the directory we tried to open.
Fix git log viewer.

The log viewer popup area was inadvertently deleted when credits
were moved to their own page. Probably should rename this page
to 'Stats' or something and rename 'Credits' back to 'About'.
Added to TODO list.
Volume display fixes.

Move volume down to a separate line.  This gives us room to add
+/- buttons and eliminates some of the differences between the UI
for desktop and small mobile devices.  The only difference now is
that we don't display the slider on smaller screens since it is
iffy on touch devices.  Also add a numeric volume indicator so
there is visual feedback of the volume level other than the slider
which would not be visible on a mobile device.
Fix line wrapping in File Manager.

Replace spaces in the file timestamp by '&nbsp;' to prevent the
browser from splitting the date, time, or AM/PM onto separate lines.