Fixed scientific name upload bug and wrote tests

Wrote unit tests and refactored Crop.create_from_csv

The actual bug (now fixed) is that if you didn't specify a SN in the
CSV, it would try and pick it up from the parent crop, but then the
testing for "is this a dup?" was based on what was in the CSV and didn't
take that parent SN into account.  This is now fixed.
removed unused Crop.random method