M3U8: fix `join`
Fix: standard division yields a float in Python 3
client.py: general Python improvements
`IPHONE4_USER_AGENT` -> `USER_AGENT`
M3U8: `Exception` -> `RuntimeError`
client.py: `Exception` -> `RuntimeError`
Refactor imports
cache.py: general Python improvements
`get_episodes_for_emission` -> `get_emission_episodes`