* perf: faster file tree building in GTK client
* perf: faster GTK client FileList
* use a std::map for faster node lookup when building a file tree
* use tr_get_mime_type_for_filename() for mime-type lookup
* remove unnecessary layer of indirection when building the
keys for lookuops in the mime-type icon cache
* be more careful to only call operator= on proxies whose values
have actually changed, since that assignment is expensive
* (C++) Macros should not be used to define constants
* (C++) Memory should not be managed manually
* (C++) "void*" should not be used in typedefs, member variables, function parameters or return type
* (C++) When the "Rule-of-Zero" is not applicable, the "Rule-of-Five" should be followed
* (C++) "switch" statements should have "default" clauses
* (C++) "explicit" should be used on single-parameter constructors and conversiosn operators
* (C++) Non-const global variables should not be used