Bug fix and refactoring: `keu:with-advice'

`keu:with-advice' had bugs: return value was incorrect and could not restore
the state (enabled/disabled) of the advice correctly. For more details, see
http://toro.2ch.net/test/read.cgi/unix/1387010164/250-261 .
Bug fix

  - It could not handle recursive macro definitions and `defadvice' (because it
    used `macroexpand-all').
  - `debug-print-symbol' in (quasi-)quoted list was ignored. This is not
    compatible with Gauche's behaviour.
Update test
Bug fix

It could not handle `lambda'.
Refactoring

Removing some symbol in tree is a simple work and should be separated from
`debug-print:code-walk'. I added `keu:replace-in-tree', which is similar to
`sublis' but it supports splicing.