Make stream initialization and ending consistent

Ignore-this: 64ed3e056700cf665a04a207e6588635

After Stream.initialize is called MediaStreamDidInitialize or MediaStreamDidNotInitialize notifications
will be fired. MediaStreamDidFail will only ever be posted *after* the stream has been initialized.

Also make sure Stream.end always posts MediaStreamWillEnd and MediaStreamDidEnd if the stream was
initialized and guard against calling it multiple times.

darcs-hash:20140905104049-56b4d-edc10877dfb6028bf484dcacf6330570798f3c95
Update years

Ignore-this: 92873b2e307a0782082b1208d7be4b10

darcs-hash:20140905141410-58252-030b41fe38941a1a4966641166e0f7cb96dd34a9
Update SDK capabilities with video support

Ignore-this: c5defee9e2ad84fc2bac607bd84202f0

darcs-hash:20140905141418-58252-8a5f695762eac7f2ee0db5e0a60b302ecaaa4ac2