Add edit and less macros, mirroring which

Also add methods for edit and less that take `::Any` vararg (again, mirroring which), and specify that the previous definitions take a tuple of `::(DataTypes...)`.

This was remarkably easy with the recent refactoring of `which`.  The high number of changed lines is simply due to adding indentation for a for loop (over `:which,:edit,:less`) and an `@eval` block around the existing `@which` definition — the only real changes required were to change `:which` to `$fname`.  Pretty cool that it just works.