Lets change Project to take a new UniqueIdentifierGenerator.

```js
  constructor(url, identifierGenerator) {
    this.identifierGenerator = identifierGenerator;
```

We could make it optional for backwards compat.

```js
  constructor(url, identifierGenerator = new UniqueIdentifierGenerator()) {
    this.identifierGenerator = identifierGenerator;
```