Extend Target.read_tree_values() to handle notes that contain line
breaks in their values. Underlying this method, is a call to
grep -r '' /tree/root/
When files under that location contain multiple lines, grep will output
each line prefixed with the path; e.g. a file "test" with the contents
"one\n\ntwo\n" will be output by grep as:
/tree/root/test: one
/tree/root/test:
/tree/root/test: two
Previous implementation of read_tree_values() was assuming one value per
line, and that the paths were unique. Since it wasn't checking for
duplicate paths, it would simply override the earlier entries resulting
with the value of "two" for test.
This change ensure that such multiline values are now handled correctly,
and the entire value is preserved.
To keep compatibility with existing uses of read_tree_values(), the
trailing new lines are stripped.