strip utf-8 bom.

I can speak poor english. sorry...

thank you for maintaining this module.

utf-8 text file often has BOM. not always.
(http://en.wikipedia.org/wiki/Byte_order_mark)

load method is not strip BOM. when fp.read().
It occured JSONDecodeError exception.

this pull request code is based pep8.py code.
https://github.com/jcrocholl/pep8/blob/master/pep8.py#L1259


This should probably be `contents[:1]` to ensure that we don't raise an exception here if the input is empty, a more appropriate exception will be raised later in this case.