Dino catalog2

FilteringEnumerable library: Wraps Enumerables with filters against reader methods, providing filtered views of enumerable contents
TokenSelectable: Mixin provides a class with factory method returning instances corresponding to input tokens
Dinodex library: Data domain of dinosaurs, including constrained sets of data items describing characteristics dinosaurs that can recognize input tokens corresponding to their value and print themselves for output
Dinodex::CSVLoader: CSV file processor constructing dinosaurs
Dinodex::CommandLineInterface: User input  processor that builds a filter to apply against dinosaur list

example:

dino_catalog.rb -f dinodex.csv -d continent=Africa -f african_dinosaurs.csv -l -j -p cretaceous

if you're not worrying about comments, these can all be set with only having to write `attr_accessor` once. We should generally always be able to figure out what each of these categories means without an extra comment