ENH: optional ':' separator in ISO8601 strings
- [X] closes #10041
- [X] tests added / passed
- [X] passes `git diff upstream/master | flake8 --diff`
- [x] whatsnew entry

Includes some refactoring in the ISO8601 parser. If more tests are desired, please let me know where to put them. Same for the whatsnew entry. This is effectively my first pull request for Pandas.

cc @jreback 

cc @chris-b1 can you have a look
 Looks good as far as I can tell.  The partial time formats are a bit out there, but unambiguous, so I don't see any harm.

``` python
In [24]: pd.Timestamp('2015/01/01 1234')
Out[24]: Timestamp('2015-01-01 12:34:00')
```
 can you rebase and push again
 thanks @thejohnfreeman !
 Thanks for the help!
 I normally test on windows before merging....but alas

```
.................................................S.......S.........................................................................................
...................................................
======================================================================
ERROR: test_parsers_iso8601 (pandas.tseries.tests.test_tslib.TestDatetimeParsingWrappers)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\conda\Documents\pandas3.5\pandas\tseries\tests\test_tslib.py", line 736, in test_parsers_iso8601
    raise Exception(date_str)
Exception: 2005-0101

======================================================================
FAIL: test_nanosecond_string_parsing (pandas.tseries.tests.test_tslib.TestTimestampNsOperations)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "C:\Users\conda\Documents\pandas3.5\pandas\tseries\tests\test_tslib.py", line 902, in test_nanosecond_string_parsing
    self.assertEqual(ts.value, expected_value)
AssertionError: 1367392545123456000 != 1367392545123456789

----------------------------------------------------------------------
Ran 9204 tests in 304.769s

FAILED (SKIP=174, errors=1, failures=1)
```
 so if you have the ability to debug on windows, pls have a look :<
 Just at a glance, the errors make it seem like my changes to the C code weren't built. I didn't have any platform-specific preprocessor guards in the C, so I would expect it to behave the same on each platform. What are the sources of differences between Windows and Linux behavior? Are the numpy and Python datetime types different on each platform? Are there platform-specific tests?
 hmm, I just tested this again on windows and its ok. Why don't you rebase and push again. 
 ok, maybe something funny happened in the build.

thanks again!
