Miscellaneous fixes

These are a few miscellaneous kernel and javascript driver changes that came out of working with VWF on other projects. They are mostly independent of each other and the preceding changes. But there is one merge conflict, so they're stacked on top of branch/find-trees so that we don't risk a merge error later.

@eric79 please review.

I think it's appropriate to keep it the way it is. This is an interface with application code. We should apply any interpretation to what the user said as soon as we get it. Since `componentKernelFromJS` is an internal function that's just concerned with translating values, it's reasonable for it to require that it's always provided a value.

It would be nice to avoid duplicating the `kernel.createChild` call. But I don't see a simple way to do that, and with both copies right next to each other, I'm not too worried about it.