[5.0] Extracted Contracts

Extracted Database, View, Validation, Translation and Queue contracts.

Fixed some typos along the way

Only ones remaining are:
* `Illuminate\Routing\Annotations\EndpointInterface`
* `Illuminate\Routing\Matching\ValidatorInterface`
I assume `mixed` means unspecified, while `void` means nothing. Is this a Laravel thing?