An ESC should be ideal basis for what you want. I know that for electric r/c airplanes, you definitely can vary the speed since that's what the throttle control does, although I don't know that you can throw them into reverse.
However, an ESC is essentially a device for making three phase AC out of DC, and the old trick for changing direction of a three phase motor would apply, which is that you simply swap any two of the three connections and the direction of rotation changes. A DPDT relay or an H-bridge switching circuit could accomplish that for you. Although there's a very good chance that a ground-vehicle ESC could do reverse without any tinkering. It's worth looking for one that can do reverse before getting tangled in adding circuitry.
Also, they don't have any feedback capability that I'm aware of, it's strictly power into the motor, although again, I'm not familiar with them all. Even if there are expensive models that do what in BLDC controller jargon is referred to as 'sensorless control' - which is almost exactly what you said, every so often you stop driving power and check the voltage being generated to sense speed, it would be doubtful that the ESC would feed this information back to you. Chances are it would only use it to vary the frequency/phase of the AC it produces in order to better sync the fields in the motor. However, nothing says you can't turn off the ESC and directly read the generated voltages directly with the microcontroller.
One thing you could do, though, to tell when someone takes control over the platter, is sense the current being pulled by the ESC. You would have to LPF it to mitigate the switching frequency of the AC the ESC produces. As long as the ESC isn't told to accelerate the platter too quickly, with basically no load on it, the current demand should be fairly low. At a constant speed of rotation, the current should also be nearly constant, and low. As soon as someone tries to change the speed/position of the platter, this should be visible as a sudden change in current. The difficulty with this approach is that if you're turning the platter at low speeds, the AC switching frequency required for that is also quite low, so it might be hard to get the signal out of the noise. I'd put the current on a scope and fiddle with it, to see how good (or not) the signal is, before committing to building hardware for it.
Another thing is to use those reflective optical sensors, like the lego robotics setups. Or hall sensors as you suggested. Either way, you'd get input that could be changed to speed information, that you could compare against what the controller expects the speed to be. Any change in expected speed, and you momentarily (1/4 second?) disable the ESC and if the platter keeps moving above a certain threshold speed, or doesn't stop for longer than a threshold time, leave it off, otherwise, back on.
If it's the kind of ESC used with R/C planes, the hook-up is pretty straight-forward.
On the output side, there will be three wires to connect to the motor. It almost doesn't matter how you connect them, except that if your rotation is opposite to what you expected, you can just swap any two of the three.
For input, the ESC takes a power feed from your DC source, usually a lithium-poly with planes, and a control signal from the R/C receiver.
The control signal is the same kind used with servos. There is a pulse of a certain width, and variations in that width cause variations in servo position, or in the case of the ESC, the resulting speed. Point being, that if you can get control an ordinary servo with your Arduino, then you have practically everything in hand for controlling an ESC.
Best Answer
Atmel have a few application notes about brushless motor control without sensors, e.g. http://www.atmel.com/Images/doc8192.pdf or http://www.atmel.com/images/doc8306.pdf
2/ You need to sense the rotor position somehow. The magnetic field in the motor coils needs to rotate slightly in advance of the magnetic field in the rotor in order to pull it around, so you need to know where the rotor is to switch the next set of coils on at the right time. If the motor does not have hall effect sensors then you do this by sensing the emf in the coils. This only works once the motor is rotating, so there is a slower fixed sequence to start the motor.
1/ The kv number is the rpm per volt at no load, so at 14.4V the motor might be expected to be going at 10,000 rpm which is 167Hz. 10MHz would be very fast for a motor - the tips of a 10cm propeller would be at 2% of the speed of light.
3/ As the app notes will tell you, the wave form of the field required for these motors is 'trapezoidal' which is essentially a square wave.