Added some more tests and moved manager functions out of article class
Split saving into inserting and updating based on whether it has a primary key
or not
Don't try and update model if nothing has changed