Use faster loops in CompositeSpecimenBuilder
Avoid LINQ statement in EnumerableRelay
Use a GetHashCode optimisation in ListSpecification
Use a for-loop instead of LINQ in OrRequestSpecification
Optimise RecusionGuard with GetHashCode and for-loop
Improve performance and address review issues for #218

This commit rolls back the previous `GetHashCode` optimisations, because after further testing, they are not important enough to warrant the reduced readability. This improved readability in `RecursionGuard` and removed the previous change to `ListSpecification`.

This commit adds `NullableEnumRequestSpecification`, `ArrayRelay`, `CollectionRelay`, `DictionaryRelay`, and brings `EnumerableRelay` up-to-date with the style and performance warning code comment.
Added missing perf-sensitive comment on OrRequestSpecification
Merge branch 'perf-testing' of https://github.com/adamchester/AutoFixture into adamchester-perf-testing
Removed LightweightMaybe,

because previous performance optimisations removed all except a single use
of it.
Updated Zero29 NuGet package.
Incremented patch version,

in order to indicate that performance improvements (however important they
may be) don't add new features, but are rather to be considered as
'fixes'.