Port search control to JavaScript
Port cilantro.models.value to JavaScript
Change primary lookup and rendering of values list using label

In most cases, the label and value are the same, however for the cases
where the value is a surrogate identifier, the label is the preferred
string to be rendered when representing a list of values.

Fix #428
Increase max depth of blocks to a more lenient value of 3
Port cilantro.core to JavaScript

Increase max Serrano version to 2.3.2
Prevent empty request when there are no labels to check
Set label on unknown items in the list for validation

This falls back to setting the value if Serrano < 2.3.2 since it
would cause a 422 error. It prints a warning to the console since this
will cause a buggy experience for non-primitive data fields.