Reformat usage tests.
Add immutable sample types.
Add usage test for constructor values.
Better handle missing properties.

Throw a nice exception with a helpful message.
Move the missing property check to before we start building.
Extract out missing argument detection
Make missing argument detection nicer.
Make GetMissingArguments static
Move GetMissingArguments() to IArgumentStore.
R#: Extract Method.
R#: Extract Method.
Pass constructor arguments to CreateInstanceOfType
Refactor the example usage test.

Use consts and variables for the various arguments.
Add Equality to the immutable types.
Add handy extension method for converting case.

Convert camelCase to PascalCase.
Add Properties query to the Argument Store.
Implement constructor arguments.

For immutable types, partition the list of arguments specified in the
fluent syntax into those that are matched on the constructor and those
that are matched on properties. This allows you to use the same syntax for
setting constructor values as publicly-mutable state.
R#: Remove unused usings.
Merge branch 'constructor-arguments'