Refactor wet/dry logic into a new subclass of Effect

Serves two purposes:

- Effects that don't need wet/dry levels (filters for example) are always more efficient now
   - No need to set "isAlwaysWet", which was a bit awkward to do
- Effects without wet/dry levels shouldn't have setters to change wet/dry levels