Properly handle the phoneQueue!

We were treating the phoneQueue as a stack instead of a
queue (!!!). This worked most of the time because the queue/stack
would tend to have only one item in it, so treating it as a stack was
the same as a queue. However on a slow or flaking network, more then
one item can accumulate in phoneQueue in which case the blocks would
be sent out of order to the Companion. Many times even this is
harmless, but not always. For example in the case of a very slow
network, the entire app will be queued and served out of order, so
the (clear-current-form) call will wind up last instead of first,
leaving the App Inventor Programmer looking at a blank screen on her
phone!

Change-Id: I6d85fc938426559d69cd527465ce0debcd83d2bc