Settings Engine Compatibility With App Database Files

I somehow scrounged up a bit of time to do some settings engine work.

Feature #4355: Settings engine doesn't handle files that are always locked for write (such as database files) very well

When writing a file back out to disk, if we can't get a file write lock, that isn't necessarily a failure - first check if we actually had something different to write, and if not, there is nothing to do.

Also when reading a file from disk, we typically don't want FILE_SHARE_WRITE share mode (because it means we're probably reading a file mid-write, which is essentially backing up a corrupt version of the file), but there are a few apps that we do want to enable this share mode for, such as apps that work with a settings DB, and leave it open for the lifetime of the app. In this case, the manifest now allows opting in to this behavior in the filter section (so it can be done for certain file extensions, all files in certain subdirectories, or just some particular file).