improve type detect in FMDatabase.bindObject:obj when obj is a NSNumber

We should enum all possible in NSNumber, or we may get an incomprehensible result.

e.g. the result of `[@NO objCType]` is `@encode(char)` not `@encode(BOOL)` under XCode5
Might help to export the retry timeout interface for the tests!  Also, new test to check @imoldmans' patches.
Header fix.
Cleanup and contribs.