Use defadvice to make eval-last-exp namespace-aware.

	Also for pp-eval-last-exp.

* namespace-tools.el (eval-sexp-add-defvars, pp-last-sexp): New
Advice.
(eval-sexp, eval-last-sexp): Deleted. No longer used.
(activate): Don't rebind C-x C-e.
Macroxpand commands

* namespace-tools.el (eval-expression, expand, expand-all): New
commands.
(activate): Bind them.
(pp, macroexpand1, macroexpand, macroexpand-all): New helpers.

* namespace.el (namespace--macrolet-env): Factored out from
(namespace--macroexpand-all-env): New helper using it.
(namespace-macroexpand-all, namespace-macroexpand1)
(namespace-macroexpand):  New.
(namespace-eval-in-namespace): Use namespace-macroexpand-all.
Fix eval-last-expression command.

* namespace-tools.el (eval-sexp-add-defvars): Needs to be a before
advice because eval-sexp-add-defvars calls macroexpand-all.

* namespace.el (namespace-macroexpand-all): Indirectly call
namespace--walk-toplevel to support defun and defstruct for
eval-in-namespace.