leex: new features for macros

Three new features have been added for macros.

1) A macro's name can start with a letter, a digit, or the underscore
   character.  Previously, it was limited to an uppercase letter, a
   digit, or the underscore character.  This change permits an author
   to avoid capitalization for the naming of macros when needed.

2) Using the same policy as rules, a macro's definition can contain
   other macros.  Previously, it was not supported.  This change
   permits an author to re-use macros when needed.

3) A warning is generated for each unused macro.  Previously, it was
   not supported.  This change helps an author recognize mistakes
   and/or typos.