Improve action log driver to truncate more tightly.

Separate log processors into its own trait.
Fix some accounting (ignore sentinel size).
When truncating, read all bytes up to the limit.
Add unit tests.
Fix/tighten pre-existing test.
Replace UTF-8 string with const.
diff --git a/core/javaAction/proxy/src/main/java/openwhisk/java/action/Proxy.java b/core/javaAction/proxy/src/main/java/openwhisk/java/action/Proxy.java
index bdcbcab..ad36124 100644
--- a/core/javaAction/proxy/src/main/java/openwhisk/java/action/Proxy.java
+++ b/core/javaAction/proxy/src/main/java/openwhisk/java/action/Proxy.java
@@ -52,7 +52,7 @@
     }
 
     private static void writeResponse(HttpExchange t, int code, String content) throws IOException {
-        byte[] bytes = content.getBytes("UTF-8");
+        byte[] bytes = content.getBytes(StandardCharsets.UTF_8);
         t.sendResponseHeaders(code, bytes.length);
         OutputStream os = t.getResponseBody();
         os.write(bytes);
@@ -119,7 +119,7 @@
             try {
                 InputStream is = t.getRequestBody();
                 JsonParser parser = new JsonParser();
-                JsonElement ie = parser.parse(new BufferedReader(new InputStreamReader(is, "UTF-8")));
+                JsonElement ie = parser.parse(new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8)));
                 JsonObject inputObject = ie.getAsJsonObject().getAsJsonObject("value");
 
                 HashMap<String, String> env = new HashMap<String, String>();