Added a HashSet for excluded extension checking
Use Interlocked.Exchange when checking for null
Merge pull request #3 from markrendle/master

Couple more optimizations