Fix compiler warnings

Fixed compiler warnings. 6 commits are included:

* 0f75e64: Catch clauses that does not use the exception object should not declare the variable name.
* 412ceb8, 3a1199a, 150376b: In the fv_converter, the input (num_values of datum) is typed as double, and the output (value of sfv_t) is typed as float. We are intentionally losing floating-point precision here, so I added explicit cast.
* 20d76b3: Implicit conversion from void pointer to bool should be avoided.
* 034bffa: Implicit conversion from iostreams to bool should be avoided.
  As the operator bool in iostreams behaves differently between C++98 (which returns void*) and C++11 (which returns bool), I used negation of fail() member instead. This does not change the current behavior ([std::ios::operator bool](http://www.cplusplus.com/reference/ios/ios/operator_bool/)).