Various improvements to the Waveform class

Document the Waveform class and initializer

On initialization, be more strict about testing validity, but add option to
not fail if the Waveform is invalid.

Warn about unused keyword arguments.

Add `data_dot` method

Add underscore to Waveform.__str__

Tell history about unpicklings with useful rename
Add a few mode-calculation methods
Correct a couple unneeded imports
Update history string format
Note a couple missing tests
Add empty alignment placeholder