Added 'upsert' support to the core __construct() method. If the  parameter contains a where clause, it will be used to look up an existing model and use the found pk value. Updated indentation for several methods.