added exceptions and a base model with validation

camelotBaseModel based on SeanMcCool's eloquent base model