DUI: further optimize icons loading

# Description
This is from reviewing [this](https://github.com/Benglin/Dynamo/pull/92) pull request. Since LibraryCustomization.resourceAssembly is only ever initialized once for each LibraryCustomization, if it is null the LibraryCustomization.LoadIconInternal should return early.
Also do the following:
1. Rename XmlDocument data member to xmlDocument.
2. Make xmlDocument, assemblyName and resourceAssembly as readonly data members.
# Reviewers
@Benglin ,@vmoyseenko, please take a look.

Link to YouTrack:
[MAGN-4936](http://adsk-oss.myjetbrains.com/youtrack/issue/MAGN-4936) DUI: Further optimize LibraryCustomization.LoadIconInternal