Do not call str.length if str is undefined

Fixes the effects of #5599.

The problem is that `stringToBytes` in `src/shared/util.js` can be called with an `undefined` string for some PDFs. This PR makes sure we handle that case correctly by setting the length to 0. We issue a warning in that case to indicate that there might be something wrong with the PDF or with the code. Note that this function has to return a `Uint8Array`, even if it's of length 0, because other functionality in PDF.js depends on that.
`typeof str` is nice, since it actually checks that it's a string. But if the result of micro benchmarks is to be trusted, the performance is unfortunately a bit varied in different browsers: http://jsperf.com/typeof-vs-undefined-null. Just do what you want here :-)