Allow the #! command line to be up to PAGE_SIZE long, rather then
artificially limiting it to MAXSHELLCMDLEN. The interpreter name is
still limited to MAXSHELLCMDLEN.
A \0 is now considered a line terminator.
Correctly report the ENAMETOOLONG case.
Note that FreeBSD (and hence DragonFly) break the #! line into multiple
argv arguments, which is not what any other UNIX does. This is likely going
to be changed in the future but not as of this commit.
Inspired-by: Maxim Sobolev <sobomax@FreeBSD.org> / similar FreeBSD work,
and Garance A Drosihn <drosih@rpi.edu>