Remove document.write for script path and allow external config

1. Use document.getElementsByTag name to find the script's path.
   When used async, this fails by providing the wrong path instead
   of failing catastrophically.
2. Detect if the script was loaded asynchronously by attaching a load
   event to the body and seeing if it fires.
3. Evaluate the correct script path when it is requested. This gives
   the user time to manually configuring it using the Papa.SCRIPT_PATH
   global. If this isn't done and the script was loaded async, throw
   a helpful error explaining how to fix.
Check body exists before attaching load listener & rename flag to LOADED_SYNC
Use DOMContentLoaded event, always try to use a worker so error is thrown

DOMContentLoaded event fires sooner fixing the body-async case.
If the user reqeusts a worker, try to use one even if no path is set
so that a helpful error is shown.
Merge pull request #120 from edg2s/script-path-fix

Remove document.write for script path and allow external config