Applied necessary updates by @ deskbookers

* Changed protected constructor to public
* Insert now returns array with inserted primary keys when table has more than one primary key, single value otherwise.
* Result now casts values to their right type:
** boolean 't' => true, boolean 'f' => false
** integers to (int)
** floats to (float)