Kpermuter: The width is a template argument.

Not a regular argument.
stringbag correction: Don't underestimate available space.

This was causing a bug when we set the leaf width lower. (With a
smaller leaf width, the initial stringbag was tiny; so the initial
inserted key suffix was mistakenly dropped.)
Add prophylactic code for key suffix assignment.

- Assert that key suffix assignments succeed when they must.
- Make a bigger initial key suffix.
Add a minor assertion.
Kpermuter: Correct remove_to_back() and rotate() for unusual widths.

The remove_to_back() code would fail if width==14, for example, because
garbage in the unused upper slots would drift down.

Stephen Tu report.

Like earlier commits,
Signed-off-by: Eddie Kohler <ekohler@gmail.com>
Add useful printing function.