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.
Add namespace aware indentation.

* cl-ns.el (dotimes, dolist): Add indent declarations.

* namespace-tools.el (lisp-indent-function, indent-call-form)
(lookup-indent-method, indent-non-call-form):  New.
([advice] lisp-indent-function): New advice.
(activate): Enable it.