Fix building with aeson >= 0.6.2.0 and hashable >= 1.2

### aeson

deriveJSON now takes an Option record instead of a single function. It might be
nicer to define a function that takes the fieldLabelModifier function rather
than doing it inline everywhere but I didn't know where a good place to put that
would be.

### hashable
hashWithSalt is now the minimal implementation