Feature - Handling Environments

This PR was created for the purpose of handling different environments and building them into classes that can be strictly type checked.

The EnvironmentFactory class can either take in a string, use the current `ENVIRONMENT` variable, or default to a `development` environment.

If the environment isn't recognized as one of the defined (development, staging, production) we create a CustomEnvironment class which will allow for custom configurations in the future.
Since we're going to be grabbing the data directly from the raw environment by default, it would probably be wise to "normalize" the value using some basic string manipulation or do some proper case-insensitive string comparisons (might be wise to do both). We've done that in a few places already:

- https://github.com/robinpowered/robin-api/blob/9e01615934e07891502389fdef825356a20272c9/src/Robin/Api/Controllers/AbstractApiController.php#L666-L670
- https://github.com/robinpowered/robin-api/blob/97780531b610574a35f1702a82fbcf7d7a414e3c/src/Robin/Api/Api.php#L245-L249