Correct bool to datetime conversion (behaviour based on int/float processing)
- [x] closes #11853
- [x] tests added / passed
- [x] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

## [Current coverage](https://codecov.io/gh/pydata/pandas/pull/13176?src=pr) is **84.12%**

> Merging [#13176](https://codecov.io/gh/pydata/pandas/pull/13176?src=pr) into [master](https://codecov.io/gh/pydata/pandas/branch/master?src=pr) will decrease coverage by **<.01%**

``` diff
@@             master     #13176   diff @@
==========================================
  Files           138        138          
  Lines         50587      50385   -202   
  Methods           0          0          
  Messages          0          0          
  Branches          0          0          
==========================================
- Hits          42593      42383   -210   
- Misses         7994       8002     +8   
  Partials          0          0          
```

> Powered by [Codecov](https://codecov.io?src=pr). Last updated by [b4e2d34...e27a444](https://codecov.io/gh/pydata/pandas/compare/b4e2d34edcbc404f6c90f76b67bcc5fe26f0945f...e27a444001cfcfe0760ecba1160bab8fe950d620)
 add a whatsnew entry
 added whatsnew
 build is green
 Would you like to see any other changes? Thanks
 Would you like to see any other changes? Thanks
 @gliptak actually I think I steered you wrong here. These _should_ raise if `errors='raise'` (more informative message though), pass thru for `errors='ignore'`, and become `NaT` for `errors='coerce'`.

They _should not_ convert to 0/1 datetimes.
 What is the informative message when `raise`? Also what does pass through mean when `ignore`? Thanks
 ```
# this is what an unconvertible string does
In [1]: pd.to_datetime('foo', errors='raise')
ValueError: Unknown string format

# ignore just passes thru the values
In [2]: pd.to_datetime('foo', errors='ignore')
Out[2]: 'foo'
```

so a messge like `booleans are not convertible to datetimes` is prob enough.
 @jreback Is this the expected processing?
 ok we have another case.

I accidently gave it this (from the original issue)

```
In [5]: pd.to_datetime(df.bool)
TypeError: object of type 'instancemethod' has no len()
```

`bool` is a method! so this hit the `else` clause. I think need to make that an `elif` and `is_string_object`, then have the `else` fall thru and raise/coerce as needed. (you could even remove the `is_bool_object` and just do that in the else and in the exception do `type(v)`
 updated
 build is green
 thanks @gliptak 
