Add some support for macros inside namespace.

* namespace-test.el (test-j.1, test-j.2, test-j.3): New tests.

* namespace.el (namespace--define-rewriter): Rename from
namespace-define-rewriter until the interface becomes simpler.
(namespace--walk-toplevel): Need to use macroexpand1 instead of
macroexpand to give rewriters a change to see the intermediate
forms. Rewrites now return the env as 3rd value to support macros.
(namespace--define-rewriters): More general than the previous
namespace--define-defun-like.
(namespace--defmacro-like): New. Macros require eval-and-compile
and also need to modify the env.
(namespace--defstruct-like, namespace--defun-like): Return env but
unchanged.