Correct errors in stream list

Encryption flag was missing for encrypted source.
Type was wrong for audio-only.
Caption example did not have captions.
Support relative path for encryption key
Avoid using relative urls as cache keys

Key url may be relative and is therefore not guaranteed to be unique. This can lead to erroneous cache hits.
Use the resolved absolute key url as cache key instead.
Support EXT-X-KEY:METHOD=NONE

Do not assume that METHOD=NONE is followed by an encryption key.
EXT-X-KEY:METHOD=NONE is a playlist attribute that means the content is not encrypted.
Normalize IV from protection header

The IV from the protection header may be less than 16 bytes long. In that case we pad it with leading zeros to make it 16 bytes. This makes the IV match the format that the decryption logic expects.

Tested with a stream using IV=1 (single byte)
http://playertest.longtailvideo.com/adaptive/oceans_aes/oceans_aes.m3u8
and some non-public local streams with 7 hex characters / 4 byte in key tag
Avoid NPE in equals checks
Merge pull request #36 from perchrh/hls-upstream-sync

Improve compatibility with different encrypted streams
Merge remote-tracking branch 'upstream/hls' into hls-sync
Merge branch 'hls-sync' into hls-dev
Add FIXMEs after code review + some minor fixes