crypto/algorithms/base.js: Convert to es6
Convert base to an es6 module with es6 classes, for clarity and to help with
jsdoccing.
Complications are:
* jsdoc gets confused by `export class`, so the exports are separated.
* turns out that extending Error is a bit difficult, so instanceof doesn't work
on derived Error classes. This only really affects us in one place (app-side
code shouldn't be doing instanceofs anyway), so just use `name` instead.