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.