[configure] Use the preprocessor to determine the target FPU on ARM.

This is needed for a number of reasons:

1. Runtime detection of the target FPU is very hostile towards
   cross-compiling. We'd previously only pick up an FPU if we're
   compiling directly on the target device.
2. The runtime detection logic would attempt to use FP instructions
   regardless of whether the toolchain is actually configured for
   it. That means we could end up detecting an and using an FPU
   when the entire system is actually soft float, i.e. P/Invoke
   blows up.
3. The previous detection logic is never what distro packagers
   want because one build server could just happen to have an FPU
   even though the package is being built for soft float (armel).
Remove the #error for hard float on ARM.