Add space after function-like macro expansion

Add a space after expansion of function-like macros to avoid extension of
tokens as in this pathological example:

  #define f(a) a
  f(a)b

formerly became "ab" which is wrong because it creates a new identifier
where it shouldn't. Instead if should read "a b"... which it does now.

This problem does not exist with object-like macros as they're are already
known to be delimited identifiers. This phenomenon is wanted with #subst.

`upp' was changed to accept stuff from stdin so that I can test better and
it mimics `cpp' in this regard.

I outlined a point about why I don't use external libraries (such as libcpp)
in the README.
Raise an error if a macro or pattern is empty

Formerly, #define and #subst allowed lines like

  #define
  #subst

with trailing spaces to be parsed. These are now detected as error for at
least the macro name or substitution pattern must be given.