Dino Dex First Refactor

Let me know when you have a few minutes.  I want to go over a few of the questions you had which I haven't yet done anything with.
To clarify, when you have a `begin`/`rescue`/`end` block that takes up the whole method, the `begin` and `end` are unnecessary.

```
def initialize(attributes = {})
  attributes.each { |key, value| send("#{key}=", value) }
rescue
  raise "Invalid attributes hash: must contain attributes of Dinosaur class in format { operator <string> => { attribute: value } }"
end