test_backprop: more accurate entropy reports at epoch start

Epochs after the first are unlikely to start exactly on a reporting
boundary, but the entropy and other numbers were scaled as if they did.
This was hardly noticable (and even sort of useful) with long epochs,
but now I am using short ones and it is a nuisance.
recur-rng: increase the range of automatic random initialisation

The seed is still based very non-randomly on the time and rng object
address, but before it would always end up as a 32 bit number. now it
is approximately a 52 bit number. The range of actually reachable
numbers has probably not increased that much.
rename text-classify, xml-lang-classify, because accurate.
tests/test_utf8: add more bad strings
Makefile: xml-lang-classify doesn't need ccan/ttxml any more
xml-lang-classify: improved comment accuracy
opt-helpers.h needs to include ccan/opt/opt.h
charmodel-classify: epoch() prints barchart in progress report
rnn-init: slightly better debug string in randomisation
text-classify: add options for learning method, activation
text-classify: add --no-save-net option

Previously it never saved.
text-classify: add option to ignore start of document, replacing lag

The --lag option actually did nothing and is conceptually wrong.
text-classify: add --epochs option, saying how long to run
text-classify: rework main loop, add  validation

Validation appears broken. The net appears to learn *something*,
based on training entropy, but validation entropy is all over the place.