While attempting to run lldb-mi on Windows it became apparent that it doesn't consistently escape output, for instance error messages contained paths with unescaped backslashes, and unescaped double-quotes. To address this issue without spending a ridiculous amount of time trying to track down every case where output isn't properly escaped I've opted to move all escaping into CMICmnMIValueConst. CMICmnMIValueConst is the basic building block of all output emitted by lldb-mi, so handling escaping in a consistent manner here will help to ensure all output is properly escaped. This change required removing any existing escaping of output to prevent double-escaping.
I've also removed the spacing code from CMICmnMIValueTuple and CMICmnMIValueResult, it was only misused to format composite values in CMICmnLLDBUtilSBValue::GetCompositeValue(). The format of composite values isn't specified by the GDB-MI spec, and as such these values shouldn't be built using CMICmnMIValueTuple, CMICmnMIValueResult, and CMICmnMIValueConst.
Tested on Ubuntu 14.10 x64 VM
here