Extended the formatter with a custom box-making function and spelunking capabilities

Added a new box-making function CodeFormatterMakeBoxes, which does a simplified conversion to boxes. It differs from MakeBoxes in that it only produces RowBox-s, so when used, it guarantees that the formatter will work.

Also, added functions CodeFormatterPrint to pretty-print symbol's definitions,  and CodeFormatterSpelunk to allow easy system spelunking.