make HgRepo.log() able to handle empty commit messages, empty authors, and newlines in commit messages

note the `nonempty` filter returns '(none)' when field is unset

you can trigger an empty commit message by doing `hg ci -m ' '`