PixelBuffers must be locked _before_ you get the base address for them.
Rewrote FSM to get things working on EdgeCast.
Added command tracking and status code parsing. Things still work on EdgeCast.
Things now seem to work on EdgeCast, Wowza, and nginx-rtmp-module.

To make things work, I had to keep track of the command that was sent for each
packet ids. That way, when the server calls does a _result() invoke, we can see which state we are in. This is more reliable than the assumptions made with the simplistic FSA implementation that existed before.

Furthermore, we needed to handle the _onStatus() invoke properly, to ensure
that we don't start streaming before the server tells us
"NetStream.Publish.Start".