Always run parse. Added option to see if a model isn't valid

Let's face it, it's way easier (and more performant) to implement a parse method that can reject a model on the model than to add one to a collection that needs to loop and run the model's parse anyways. This change will add a `valid` property on the model if its invalid after running parse. If a collection sees a `valid === false` model then it will not add it to the collection.