Fix (well, rewrite) the start() logic - not only would it eat characters, but it could cause the output to stop completely.
Fix (well, rewrite) the start() logic - not only would it eat characters,
but it could cause the output to stop completely.

While there, fix cnputc() prototype and clean up cngetc().

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars