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.
Make Container widgets take children as the first positional argument

This makes creating containers less cumbersome: Container([list, of, children]), rather than Container(children=[list, of, children])
Prepend a sentinel value to model ids to distinguish them from normal UUIDs (from Sylvain Corlay).
Change serialization terminology to serialize/deserialize
Update celltoolbar.js

I want to write an extension with multiple select bar. They are supposed to be displayed inline, not in block mode. The better way is to use span instead of div.
Container assumes the children attribute is not None

Thanks to @SylvainCorlay for pointing this out.
once-displayed
unnecessary context variable specify
incorrect comment
cell toolbar and modal dialog fixes

- name conflict in modal
- cell.cell_type in cell toolbar

prevented edit metadata from working properly.
Merge pull request #6153 from jasongrout/container-children-arg

Make Container widgets take children as the first positional argument
Add docs on writing kernels
Merge pull request #6127 from minrk/fix-edit-md

cell toolbar and modal dialog fixes
Merge pull request #6160 from parleur/patch-2

Span in CellToolBar instead of div
Upgrade less and generate sourcemap files
add comments for style blocks in less

separates each component into individual line in compiled css,
reducing some churn in minified css files.
abstract hard-coded style values to be variables for different theming
Compile less files
Simplify the code for picking json serialization functions to expose the logic better