optimize_b_greedy: Avoid left shift of negative value.

Before:
-------
accu_error was always <= 0:
- It was initialized to zero, and
- Became more and more negative through the iterations.

This meant that RDOPT() macro usage on accu_error was causing left shift
of negative value.

Now:
----
- accu_error is initialized to a large positive value.
- It becomes smaller on every iteration but remains >= always.

This is functionally equivalent: verified that there's no change in
output due to this patch.

BUG=aomedia:600

Change-Id: I654572a72234c588c8f332d5b66a5587fc6610b4
diff --git a/av1/encoder/encodemb.c b/av1/encoder/encodemb.c
index c2a99fb..0f1b799 100644
--- a/av1/encoder/encodemb.c
+++ b/av1/encoder/encodemb.c
@@ -218,7 +218,9 @@
   const int ctx0 = ctx;
   /* Record the r-d cost */
   int64_t accu_rate = 0;
-  int64_t accu_error = 0;
+  // Initialized to the worst possible error for the largest transform size.
+  // This ensures that it never goes negative.
+  int64_t accu_error = ((int64_t)1) << 50;
 
   rate0 = get_token_bit_costs(*(token_costs_ptr + band_translate[0]), 0, ctx0,
                               EOB_TOKEN);
@@ -413,6 +415,7 @@
 
         token_cache[rc] = av1_pt_energy_class[t0];
       }
+      assert(accu_error >= 0);
 
       x_prev = qcoeff[rc];