Attempt to fix [2152536] ANR in browser

The ANR is caused by SurfaceFlinger waiting for buffers of a removed surface to become availlable.
When it is removed from the current list, a Surface is marked as NO_INIT, which causes SF to return
immediately in the above case. For some reason, the surface here wasn't marked as NO_INIT.

This change makes the code more robust by always (irregadless or errors) setting the NO_INIT status
in all code paths where a surface is removed from the list.

Additionaly added more information in the logs, should this happen again.
diff --git a/include/private/ui/SharedBufferStack.h b/include/private/ui/SharedBufferStack.h
index c02b2e7..59cf31c 100644
--- a/include/private/ui/SharedBufferStack.h
+++ b/include/private/ui/SharedBufferStack.h
@@ -142,6 +142,7 @@
     SharedBufferBase(SharedClient* sharedClient, int surface, int num);
     ~SharedBufferBase();
     uint32_t getIdentity();
+    status_t getStatus() const;
     size_t getFrontBuffer() const;
     String8 dump(char const* prefix) const;
 
@@ -177,7 +178,7 @@
 {
     const SharedBufferStack& stack( *mSharedStack );
     SharedClient& client( *mSharedClient );
-    const nsecs_t TIMEOUT = s2ns(1); 
+    const nsecs_t TIMEOUT = s2ns(1);
     Mutex::Autolock _l(client.lock);
     while ((condition()==false) && (stack.status == NO_ERROR)) {
         status_t err = client.cv.waitRelative(client.lock, TIMEOUT);
@@ -187,14 +188,15 @@
             if (err == TIMED_OUT) {
                 if (condition()) {
                     LOGE("waitForCondition(%s) timed out (identity=%d), "
-                            "but condition is true! We recovered but it "
-                            "shouldn't happen." , 
-                            T::name(), mSharedStack->identity);
+                        "but condition is true! We recovered but it "
+                        "shouldn't happen." , T::name(),
+                        mSharedStack->identity);
                     break;
                 } else {
-                    LOGW("waitForCondition(%s) timed out (identity=%d). "
-                            "CPU may be pegged. trying again.",
-                            T::name(), mSharedStack->identity);
+                    LOGW("waitForCondition(%s) timed out "
+                        "(identity=%d, status=%d). "
+                        "CPU may be pegged. trying again.", T::name(),
+                        mSharedStack->identity, mSharedStack->status);
                 }
             } else {
                 LOGE("waitForCondition(%s) error (%s) ",