Fix ignored ids for belongsToMany relations

Fix ids ignored by marshaller for belongsToMany relations.
fix FileEngine, divergent behavior when debug is off or on
Added preliminary support for DSN. Refs #4396
Fix reference to parseDsn method
Group all unset calls together
Remove Hash class dependency
Add DSN parsing to StaticConfigTrait
Simplify DSN logic in ConnectionManager
Switch from `dsn` to `url`

The rails framework uses the same key when specifying resources as urls, and as `dsn` is already used internally by datasources, it makes sense to switch to another, more descriptive name.
Fix doc comment variable reference
Fix doc comment variable reference
Update doc comment
Update doc comment
Add support for null values
Update docblock comment
Add dsn parsing support to the Email class

This pr adds DSN parsing support to both `Email::config()` and `Email::configTransport()`, though it is more useful in the `Email::configTransport()` case.
Set config argument default value to null
Add support for cases where the scheme is not a useful value - such as the Log class

In the case of the Log class, the `scheme` maps roughly to a className value, though we need a valid string in order for parse_url to return correctly.
Add DSN parsing support to the Log class
Add DSN parsing support to the Cache class