Initial commit of Effects & Events handlers.

?Brief? explanation here for anyone wanting to play with the feature.

Effects are essentially mini-sequences.  An effect can be overlayed onto
a running sequence and will override the values for the channels the
effect is overlayed onto.  For instance, you could have a megatree in
your main sequence and play an effect at random times to make a face,
image, or words appear on the tree.

In this initial alpha version of the code, effects are stored in the
normal FPP .fseq file format but named .eseq.  This may change in the
future before merging the feature into master.  These .eseq sequence
files must have the effect starting at the beginning of the channel
space.  If your mega tree uses 3000 channels starting at channel 1500,
then the effect fseq file should have 3000 channels starting at 1.
When the effect is overlayed onto the main sequence, the starting
channel will be shifted to the proper location.  This is done to
allow effects to be used in multiple places in a display.  A
single mega tree effect could be overlayed onto multiple mega
trees of the same size.

Effects can be triggered on-demand through the web interface on the
'Events & Effects' page linked to on the menu.  They may also be
triggered via the command line using "fpp -e effectname".  Effect
sequences are stored in the sequences directory along with regular
.fseq sequence files.  They can be manipulated using the same
upload screen as normal effects.

Events have 2 components, an internal side and an external side.
The internal side of an event is used to trigger an effect to be
played on a pre-specified start channel.  Rather than having to
manually specify the start channel for the effect to display an
animated image on your mega tree, you can define an event to
display that effect on the right starting channel.  Events can
have external sides as well.  A script can be configured to run
when an event fires off.  This allows for interfacing with other
systems not supported by DMX/PixelNet.

Currently, events can be triggered the same ways as effects, via
the web interface 'Events & Effects' screen and via the command
line using "fpp -t eventname".

There are still several items on the TODO list surrounding this
feature, including the ability to trigger events via one or more
control channels in the main sequence.  Rather than having to
put the mega tree animated image effect in all your sequences,
you could just set a value in the control channel in a sequence
and the event would trigger and start the animated effect at
the desired time.
Merge branch 'dev' into events

Conflicts:
	bin/settings.c
Move the interval timer outside of E131.c.

The interval timer will now be set to fire whenever there is a
sequence of an effect playing.  When the last sequence or effect
ends, one more timer will be set to fire to allow blanking data
to be send to clear all channels back to 0.

Effects can now be displayed without having to have a sequence
running.
Fix command line parsing for event directory.
Web UI changes.

Move effects off onto their own page since there will be other
effects related items added to this page such as a list of running
effects and way to stop a running effect.

Create an 'About' page.

Change the 'Wiki/Help' menu option to 'Help' containing two sub items,
'Wiki/Help' and the About page.

Move the git version info off the top of the main page and onto the
about page.  This makes it so that we don't hit github to check the
current version of the master branch every time we load a page.  Now
we only do this when loading the About page.  This should also help
normal page loading slightly on the Pi and cut out potential lag for
hosts who can't reach the internet for one reason or another.
Add some more info to the About page.

- Disk utilization.
- File counts for sequences and audio.
Add Playlists count to About page.
Merge branch 'dev' into events
Move the credits from the footer to the About page.
Allow .eseq to be uploaded.
SendBlankingData() to clear the lights when fppd starts.
Event subsystem enhancements/cleanups and command.c tweaks

Allow triggering events using an optional pair of control channels in a
sequence.  There are 2 control channels, a major and a minor.  Each
channel supports 25 values, and both channel values work together to form
an event ID (MajorID/MinorID').  This gives 25 buckets of 25 for a total
of 625 unique allowable event IDs.  Users can use the Major ID to group
events for a single or similar features into one logical group to keep
them together in the UI.  Both channels must be set to a non-zero value
to trigger an event.  Due to some sequencers munging the 0-255 data to
a 0-100 range, the control channel values are divided into ranges that
are 10 values wide.  To trigger the event with Major ID 20 and Minor ID 2,
you would set the value in the major control channel to 200 and the value
in the minor control channel to 20.

Allow event script command to contain spaces for optional arguments.

Convert command.c to allow multi-character commands.

Return an error if proper args were not supplied to a command such as the
playlist name to play, the volume level to set, etc..

Spaces to tabs in events.php for consistency within the file.
Move non-executables out of the bin subdirectory.

Move source code to src/
Move .docx to docs/
Add a 'make release' in src/Makefile to install fpp & fppd binaries

'make release' will copy the fpp and fppd binaries to the bin
directory so they can be committed to the repository for stock Pi
installs to use.
.gitignore src/fppd, src/fpp, and editor swap files.
silence.mp3 -> silence.ogg

Convert bin/silence.mp3 to audio/silence.ogg

Remove bin/silence.mp3

This doesn't appear to be used yet, but since we're using ogg123 for
playback now, we'll need an ogg silence file.
Fix a typo in RunEventScript().
Add armv5tel to non-Pi architectures

This should allow compilation on the PogoPlug but it needs to be tested.
Add count of events defined to About page.
Minor About page reorg.