HTML5 history in playground + maxLength support for tabarrays
Add factory-sleek example, fix tabarray.maxLength
remove debug
Playground: style rule to line up buttons with array items (issue #8)
Array/Tabarray: scoped jQuery selectors for nested arrays (issue #9)

The commit fixes the reordering issues, but values in nested array
are still lost during reordering for the time being.
All selectors scoped to node.el or similar to solve #14.

Commit also includes a typo fix for maxLength.
Fixed truncate function to include path up to next depth level (#9)

The "getPreviousNumberOfItems" function uses "truncateToArrayDepth"
to shorten the path to a key to the right depth level and then
compute the number of items at the level in previously submitted
values.

That second function did not return all the properties up to the
next array level, meaning the value checked in previously submitted
values could well be an object and not an array. For instance,
given a path:
 "foo.bar[].baz.stuff.blah[].thing"
the function used to return "foo.bar[]" for a depth of 1. It now
returns:
 "foo.bar[].baz.stuff.blah"

This should fix issue #9
setDefaultValues: relaxed need for schema to have a "properties" prop

The function used to require that the JSON Schema object it receives
as parameter be a true JSON Schema object, meaning that its root
level contains a "properties" property. The function now automatically
adds that property if it missing.
Added spaces in button's template. New basic field type "msg" defined.

Bootstrap styles do not define any margin for buttons by default,
relying on spaces between buttons to display a natural gap on screen.
The HTML template now adds spaces before and after the <button> tag
for consecutive buttons not to touch each other.

The new "msg" basic field type lets forms include an HTML message.
The HTML message does not appear as a regular field but as a form
wide message (as opposed to the "help" field type).
New "radiobuttons" field type defined

The new field type renders radio buttons inline as real buttons.
The class of the selected may be supplied in an "activeClass"
property.

Example added:
playground/index.html?example=fields-radiobuttons
Added missing example for "radiobuttons" field type
New selectfieldset "tabsType" option. New "disabled" property.

The "selectfieldset" uses a selection box by default to render the
different choices. It may now use Bootstrap "tabs" or "pills"
based on a tabsType option. Example added.

Also added basic support for "disabled" property that disables a
field (sounds useless but could be needed in some cases). Note that
the "disabled" property does not interact well with alternatives:
the "selectfieldset" type toggles the "disabled" attribute
automatically and does not preserve the former value.
New "questions" and "question" field types added.

The "questions" field type renders a series of questions and computes
the final value of a schema key based on the answers provided.

When the form is rendered, only the first question is displayed.
Depending on the choice and the action(s) defined for that question,
the following question is displayed, or the key is set to a specific
value, or the form is submitted.

The "questions" field type is essentially useful to guide the user
through a series of choices with a few questions. It allows to build
simple flows such as:

1. Do you want to watch sports?
 - Yes: go to question 2,
 - No: go to question 3
2. What are you up to?
 - Live sports: set key to "livesports" and submit form
 - Rerun of previous events: set key to "oldsports" and submit form
3. What about news, then?
 - Yes: set key to "news" and submit form
 - No: go to question 4
4. Other things I have in store for you:
 - Drama: set key to "drama" and submit form
 - Comedy: set key to "comedy" and submit form
 - Thriller: set key to "thriller" and submit form

The final goal is always to set one (and only one) key to a specific
value. Choices may be rendered as radio buttons or as real buttons.
See playground for a short example.
Questions field: short fix to use "value" instead of "setvalue"

A question that wants to set the value of the underlying schema key
now only needs to use the usual "value" property instead of
"setvalue". That is much more consistent with other field types.
Question field: fixed broken string value templating for options.
The 'selectfieldset' field type may now be linked to a schema key.

The 'selectfieldset' field type used to be restricted to a purely
visual effect. It may make sense to bind it to a schema key to
save the selected tab when the form is submitted. This is now
possible.

The commit also rolls back on previous changes made to the field
type. In particuliar, it is no longer possible to use "pills".
The functionality should rather be implemented using radio buttons
in the same vein as "radiobuttons". To be done later on if need
arises.

Values that the schema key may take upon form submission must be
declared in the "enum" property of the schema key. JSON Form uses
the index of the choice in the absence of such a property. The
label associated with each choice can be defined using the "legend"
property of the field's children as before, or using a "titleMap"
as for regular enumerations.
"hideMenu" option to hide the selection menu of a "selectfieldset"

While this feature may look weird at first, it may make sense to
hide the selection menu when one wants to impose a given choice to
an alternative for some users while others get to choose (based
on some permission system for instance).

The "hideMenu" flag on a selectfieldset field does just that.

One may also want to disable the selection menu while still
rendering it with the "disabled" flag.

These flags are advanced flags, probably useless in 99% of all
cases.
Fixed 'selectfieldset' field type when no schema key is provided.

Bug was introduced by a recent commit. The code took for granted
that the field linked to a schema element, whereas that field may
or may not link to one.
setDefaultValues: option to skip required fields with no default value

The "setDefaultValues" function was typically built to create an
object that can be used to submit the form. As such, it sets required
fields to reasonable empty strings, objects, numbers, etc. when the
schema does not define any default for these fields.

The function may also be used upon form submission to detect whether
the user actually entered something on top of the default values
proposed by the schema. In that case, there should not be any empty
value for required fields.

The function now accepts a fourth flag param to skip required fields
that do not define a default value.
Added CommonJS construct for server-side inclusion.

Running JSON Form server-side only makes sense to access helper
functions that process JSON Form. Forms cannot be rendered
server-side in particular.