Have Slick.CheckboxSelectColumn respect getItemMetadata(x).selectable.

Un-select rows that aren't selectable and somehow get selected.
The check-all checkbox's state should take into account rows that can't
be selected.
The check-all checkbox shouldn't check rows that aren't selectable.