However, if you do use the arduino, I would recommend adding in another fail-safe to prevent the pump from running too long, in case one of the switches fails in a 'low water' state, and makes the pump over-flow the tank when you aren't looking.
^^ This. I've been reefkeeping for many years, and malfunctioning float switches are a major cause of death and devastation for a reef.
I've been rolling the idea of an Arduino-based ATO (Automatic Top-Off) around in my head for some time now (been reefing much longer than I've been Arduino-ing, so my ATO right now is just hard-wired 12VDC float switches and 120VAC relays). I'll share some of my thoughts:
1. Redundancy and failsafes: use the watchdog timer to make sure the Arduino doesn't hang. And, of course, at least two float switches.
2. Owing to the poor mechanical reliability of float switches, I've also be toying with the idea of using capacitive sensing for the water level. Depending on the sensitivity, it might even be possible to place the sensor on the outside of the tank wall rather than in direct contact with the water. Another option is an optical sensor through the tank wall like the commercial Tunze ATO uses, but I'm not sure that will work well if bacteria/algae start growing on the wall / snails etc start crawling in front of it. An IR distance sensor above the water aimed down at the surface might work and would not be subject to biofouling. (An ultrasonic distance sensor should also work, but, is too big for my little 1 gallon pico reef).
3. I would want my ATO to "learn" how long it has to run the pump for a normal topoff to complete. That way, even if both float switches stick "down", the ATO can disable the freshwater pump before the tank goes hyposaline (and overflows gallons of water onto the floor). I would also want the ATO to "learn" how long it goes between topoff events -- more on that later.
4. I would want a water change mode. In water change mode, the freshwater pump is disabled, but LEDs still continue to display the status of the float switches. That way, when I'm adding new saltwater, I know when to stop because the water level has reached the ATO point. This mode also prevents the "learning" algorithm from learning bad behavior.
5. Warning mode. If one of the two float switches is detected to be stuck, signal the user so (s)he can fix it before the other one sticks too.
6. "Limp mode". If both float switches are detected to be stuck (either up OR down for too long), fall back to topping off "blind". That is, wait the typical amount of time between topoff events (remember, it's been learning the average interval back when the float switches were working) and then go ahead and top off for the typical amount of time. Topoffs will not be precise, but they may save the tank from hypersalinity if, say, I am away on vacation for two weeks and the float switches malfunction the moment I walk out the door.
7. I might also give my ATO a water temperature sensor (so it can control the heater -- heater malfunctions are another major cause of death and destruction in reef tanks). But at this stage it's not so much an ATO as a full-blown reef controller. So, I might as well also add a 12V computer muffin fan and turn it on with a transistor for evaporative water cooling when the temperature is too high.
8. Since it's a reef controller now anyway, I'd also want it to control the lights. I could use an RTC, but it's a pain to set the date/time without an LCD, and I don't really want an LCD (just my "minimalist" personal preference). So I'd instead use an opto-isolator to detect zero-crossings of 120VAC wall power. Wall power is a very accurate 60Hz (or 50Hz depending on locale), accurate enough to use as a clock. Then I just need to tell my controller when it's dawn "now" and how long to run the lights.
and another one to automatically shut off the pump as a fail safe
I would use this to disconnect the pumps power directly i.e. not fed to the Arduino.
Almost no float switches* are rated for 120VAC. Float switches should be run off low voltage DC and the 120VAC load switched by a relay.
* Yes I'm sure there are some big stainless steel industrial switches that can switch 120VAC directly, but 99.9% of the cheap little white plastic ones used by hobbyists are not rated for it and the contacts will weld themselves "on" in a few days or weeks.