Limit latex equations to page width.
Fixed latex template to support multicol w/ adjustbox.
add page-up and page-down functionality to the autocomplete dropdown
Add initial implementation of 2-handle range sliders for integers.
Add float implementation of range widget
Add an extended range abbreviation including a step value
Fix format problem when showing an error
Add some tests for the 4-5 int/float form in interact()
Adjust range style so that the vertical range marker is visible
Compiled changes to minified CSS
Remove 4-5 tuple forms from interact()
Fix validate logic if min/max are changed
Remove tests for 4-5 tuples, add tests for validate logic
update hmac signature comparison

see https://docs.python.org/2/library/hmac.html#hmac.compare_digest
support Python older than 2.7.7
minor cleanup
warn users running older versions of Python
Update widget serializer/unserializer to allow custom serialization on a trait-by-trait basis.

Serializers/unserializers are given as the trait metadata keys `to_json` and `from_json`.
Give subclasses of the Instance traitlet the option of overriding the klass variable to have a default klass.

This makes it easy to construct traitlets for specific object types and default metadata.  For example, we can have a traitlet for numpy arrays that gives default values for `to_json` and `from_json`:

```python
def np_to_list(a):
    if a is not None:
        return a.tolist()
def np_from_list(a):
    if a is not None:
        return np.array(a)

class NDArray(Instance):
    klass = np.ndarray
    metadata = {'to_json': np_to_list,
                'from_json': np_from_list}
```

Then the NDArray traitlet will by default have the klass and some custom metadata.
Prepend a sentinel value to model ids to distinguish them from normal UUIDs (from Sylvain Corlay).