Migrate all debug output tasks to DebugOutput object

- This moves all remaining debug related output tasks to DebugOutput
- It maintains [Debug] block (@andrsd you/I might need to do something to get this to work with RELAP-7)
- This also formats the Material property output to match the look of the existing system information
- Improved debug output testing

(closes #3813)
(closes #2868)
No need to use a ostringstream for string appends.  That's built into std::string (operator+()).