move protocol-reference javascript to a separate file
protocol-reference: only display one code snippet per control (fixes #5)

For each control, one "default" code snippet is determined which makes
the most sense (e.g. a DcsBios::Switch2 for a push button).

Only this "default" snippet is displayed.
Later, we can add an option to display all snippets for advanced users.
Merge pull request #8 from jboecker/fix5

Reference Docs: Show only the most appropriate code snippet for each control
fix BIOS.util.defineMultipositionSwitch for increments other than 0.1

This fixes the ANT_IFF and ANT_UHF switches in the A-10C.
Fix #4: Change A-10C TACAN Channel X/Y toggle to Switch2 interface
Clean up default view of the protocol reference
Fix #7: Reorder A-10C assignments to align the caution lights indicator data on a two-byte boundary
protocol-reference.html: Add option to switch to advanced view

This adds a dropdown field at the top of the page to switch between
"simple" and "advanced" views.

In "simple" view, each control shows only one code example for the
Arduino library. In "advanced" view, detailed information about inputs
and outputs (addresses, masks, etc) is displayed and all code examples are shown.
protocol-reference.html: Clicking a code snippet selects it (for easy copy and paste)
Merge pull request #10 from jboecker/issue9

Fix #9 (more interactivity for protocol-reference.html)
protocol-reference.html: remove console.log() call
protocol reference: replace "category filter" with a dropdown list, remove "identifier" and "description" filters

This replaces the "category filter" textbox with a dropdown list that
offers a choice between viewing a single category or all at once
(the default).

It also removes the "identifier" and "description" filters, because they
were too slow to be useful. Until we find a way to speed this up, the
browser's built-in search function is a much better way to find a specific
control.
protocol reference: fix code examples for variable_step input type
fix BIOS.util.defineRockerSwitch logic

The logic for rocker switches got broken when I normalized them to
accept states 0, 1 and 2 instead of -1, 0 and 1.

This commit fixes that. In addition, rocker switches now handle the
case where they are switched from state 0 to 2 or 2 to 0 correctly.
generate DcsBios::Switch3 code examples for three-position fixed_step inputs (refs #12)
userguide.adoc: document DcsBios::Switch3 (closes #12)
fix #13: A-10C: fix reference documentation for CMSP display lines
Use JSON:encode_pretty to create the machine-readable documentation

This commit changes replaces JSON:encode with JSON:encode_pretty
to make the machine-readable documentation (and their version control
diffs) easier to read for humans.
change license to a slightly modified Simple Public License 2.0

With this commit, I am changing the license from MIT to a modified
SimPL-2.0. I want a "strong copyleft" license, but I also want a
license that gets out of my way, which is the reason I initially used
MIT.

The GPL does not fulfill the "get out of my way" requirement. While it is
widely used and comparatively well understood, it does not change the fact
that it is littered with undecipherable legalese. It also spends a lot of
words talking about binary distribution, which is irrelevant to a project
that does not use any compiled languages.

The GPL also requires you to prominently note the date of any changes
you make. While I agree it is a good idea to do so, IMO the place for a
change log is not the work itself (or *shudder* the individual source
files, as required by GPLv2), but a revision control system.

To avoid any confusion about that part, I modified the SimPL and removed
the requirement to note the date of changes entirely.
Allow BIOS.protocol.{maxBytesPerSecond, maxBytesInTransit} to be set from BIOSConfig.lua

This modifies Protocol.lua so that values set in BIOSConfig.lua for maxBytesPerSecond and maxBytesInTransit are not overwritten by the defaults.

Refs #17.