Added preliminary support for DSN. Refs #4396

@markstory @AD7six thoughts on moving this into a Trait within the Core namespace and also adding it to Cache and Log?

- [x] Cache
- [x] Database
- [x] Email
- [x] Log

We'd have to push that into the specific classes that use `StaticObjectConfigTrait`,  as otherwise we'd be hardcoding the namespace in the trait. Also wouldn't work if a user does not specify a namespace for their class...