Renaming / Error handling

IndividualSpeedTest
- changed sys.exit(0) to raise SystemExit
- changed .readTo module calls to .utils
- changed SpeedPings to PingThread

Pings
- sys.exit to SystemExit
- readTo to utils

Created PingThread

STDs
- sys.exit to SystemExit
- changed how check for system version works
- Checking for “CPUC Beta….” line in STDs (that way no object is
created if it’s not a CPUC data file)

SpeedTestFile
- sys.exit to SystemExit
- readTo to utils
- ADDED obj attar. FileStreamLoc (representing location in stream.
Integer represents which byte to jump to
- ADDED obj attar. Latitude and Longitude. Holds 0 by default.
- REMOVED isWBBD (no longer necessary)
- __init__ just reads file name and passes initialization to load()
- REMOVED “CPUC Beta…” test. Just read through that line and assign
stream location to FileStreamLoc (using .tell())
- Most header information now follows this structure:
—— seek to stored stream location
—— read until header line
—— if returned line is empty, attr. holds “N/A”
—— seek back to stored stream loc
- in the case of the date time, in non-WBBD files, the date is parsed
and translated into [mm/dd/yyyy hh:mm:ss]
- Some blocks have nested try/excepts. This is because in non-WBBD
files, there is a line “Location ID:”, but in WBBD, it is “Location:”
- Slightly modified __str__ output

utils
- checkVersion uses sys module. Compares to tuple that was passed in
[e.g (2,7) or (3,0)]
- monthAbbrToNum found on stackoverflow.com. In return, creates
dictionary and returns the value as the passed in index (must be
abbreviation)
- monthNumToAbbr works very similarly, only with numbers not
abbreviations