Split the project into 3 assemblies to make the main assembly size smaller

NSub and NUnit helpers are in separate assemblies, because most of the
time they're not needed and injecting NUnit and NSubstitute dlls into
the main assembly makes it twice as big.