Added support for Aggregate Constructor Specifications

- [x] Added support for Constructor Scenarios when testing at the aggregate level.
- [x] Added support for NUnit assertions on both types
- [x] Added sample usage

Syntax is as follows:

For a test which expects events to be produced:

```csharp
[Test]
public void ConcertIsPlannedWithIdAndValidCapacity()
{
    var id = new ConcertId(Guid.NewGuid());

    new ConstructorScenarioFor(() => Concert.Plan(id, 100)).
    Then(ConcertEvents.Planned(id)).
    Assert();
}
```

For a test which expected an exception to be thrown (in the NUnit syntax at least)

```csharp
[Test]
public void PlanningConcertWithInvalidCapacityThrows()
{
    new ConstructorScenarioFor(() => Concert.Plan(new ConcertId(Guid.NewGuid()), -4)).
    AssertThrows(new ArgumentException("venueCapacity"));
}
```