Generalize for other file, hash/path types
Generalize hash function separate from hashblot path
Define size to be digits only

Now that invalid sizes are rarer (impossible?), the error case
is made into a 404, just as an onld invalid size will be now (as
it will not match the path)