ConnectionStringBuilder and Enum/Delegate cleanup

I've started with the codebase cleanup. As a lot of the code is a bit chaotic due to all the changes done over the past years by various authors, it's best to clean the stuff up a bit, weed out dead code and the like, restructure files, make everything look the same and professional and more predictable, so it's easier to understand when reading the code. 

I've started with the connectionstring builder. I had cleaned up the connection class as well, but that was in v2.2, and as it changed a lot in v3 branch, I'll re-do that one later. 

(all tests pass)
Regions definitely are a thing which divides people big time: some hate them to death, others don't care or love them dearly ;). The argument against grouping methods in thematic groups is that if you do that, you should create a class instead of a region, as these methods belong to a different class (single responsibility principle). Not that I agree with that though in all cases, as it will fragment code in a lot of tiny classes which will make navigating code a hell (ex: nhibernate). But there's a bit of truth in it as well, it's hard though how to judge where it becomes ridiculous ;)

Is there consensus among the group when/how to use regions? I use them mostly to get clutter in one place and be able to collapse these areas so focus can be made on the behavior part (the regions are mostly about declarations). Having stuff grouped in regions nested in other regions makes it then a bit harder as one has to open these regions to actually read the code.