Some macro refactoring
There's still lots of macro code left that panics on invalid input, but I've converted some small parts to show how it's done, and also to have a smaller diff for my next PR to fix #66 (closed).
Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.
There's still lots of macro code left that panics on invalid input, but I've converted some small parts to show how it's done, and also to have a smaller diff for my next PR to fix #66 (closed).