Import/Export CSV

Might need to add the ability to import CSV files, depending on whether they've already used Excel to make their inventory.
Nothing wrong with this, but you might like to use the `headers` option so you can access row items as a hash rather than an array.

Example:

```ruby
2.1.2 :109 > data_file = '/tmp/pets.csv'
 => "/tmp/pets.csv"
2.1.2 :110 > File.write(data_file, "name,kind,age\nLulu,Cat,3\nFarcas,Dog,5\nPaul,Bird,2")
 => 49
2.1.2 :111 > # without headers
2.1.2 :112 >   CSV.read(data_file)
 => [["name", "kind", "age"], ["Lulu", "Cat", "3"], ["Farcas", "Dog", "5"], ["Paul", "Bird", "2"]]
2.1.2 :113 > # with headers
2.1.2 :114 >   CSV.read(data_file, headers: true).each { |row| puts "#{row['name']} is a #{row['age']} year old #{row['kind']}" }
Lulu is a 3 year old Cat
Farcas is a 5 year old Dog
Paul is a 2 year old Bird
 => #<CSV::Table mode:col_or_row row_count:4>
2.1.2 :115 > # with named headers (supplied hash overrides the headers defined in the file)
2.1.2 :116 >   CSV.read(data_file, headers: ['name', 'species', 'num_years_old']).each { |row| puts "#{row['name']} is a #{row['num_years_old']} year old #{row['species']}" }
name is a age year old kind
Lulu is a 3 year old Cat
Farcas is a 5 year old Dog
Paul is a 2 year old Bird
 => #<CSV::Table mode:col_or_row row_count:5>
2.1.2 :117 >
```