Allow macro parameter names ($1, $2 ...) to be escaped and cleaned up
macro expansion code.
- Allow Bloc Attributes options to be applied to multi-line macro
  definitions.
- Documentation updates.