Add :model_name option which allows custom override of model name

Also includes some gemspec maintenance and code cleanup. (The last commit is the :model_name feature)