Move file-scope variables into classes to avoid issues in unity builds.

UBT redefines the concept of a translation unit by concatenating
multiple source files into one during unity builds, so relying on
file-scope to keep identically named variables distinct is a bad idea.
This fixes #4.
Synchronize selection of asset types that appear in multiple categories.

In the Largefiles Integration settings tree view an asset type may
appear in multiple asset categories, however, all tree items are
distinct, so multiple tree items may correspond to the same asset type.
Some state should be shared between such duplicate items so that
checking/unchecking an asset type in one category results in that asset
type being checked/unchecked in any other categories it may appear in.