Implementing support for compound primary keys

Most methods have been adapted to account for an array of key names as the  property. The exception is the insertGetId method, that currently depends on a PDO/database feature, and I'm unsure how best change this part.

It lacks tests about compound keys as well.

This PR fixes the abandoned issue https://github.com/laravel/laravel/issues/1888.