Improvements to the ls command.

The ls command now generates a local flat view.

By default only the direct functions are listed, but a numeric argument
can be provided to traverse further down the tree to collect data:

    |DataVector::Put> ls
    DataVector::Put(long, unsigned char)
        Calls: 4, Time: 1837, Av. Time: 459

                     Most Time Spent in Function
                   ===============================
      Calls      Time(us)      us/call        Name
    ---------  -----------   -------------  --------
     3          1580          526            std::vector<unsigned char, std::allocator<unsigned char> >::resize(unsigned long)
     4          92            23             DataVector::operator[](long)
     4          48            12             std::vector<unsigned char, std::allocator<unsigned char> >::size() const

                     Most Expensive Function Calls
                   =================================
      Calls      Time(us)      us/call        Name
    ---------  -----------   -------------  --------
     3          1580          526            std::vector<unsigned char, std::allocator<unsigned char> >::resize(unsigned long)
     4          92            23             DataVector::operator[](long)
     4          48            12             std::vector<unsigned char, std::allocator<unsigned char> >::size() const
Add searchroot command

A new command searchroot (sr) invokes searchchildren on the root node.

Update README with this and the new ls functionality