Remove alignment requirement for mbedtls_gcm_update: implementation

mbedtls_gcm_update now accepts inputs of arbitrary size. There is no
longer a requirement that all calls except the last one pass a
multiple of 16 bytes.

This commit updates the library code and adjusts the GCM tests to
exercise arbitrarily aligned input sizes.

Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
diff --git a/tests/suites/test_suite_gcm.function b/tests/suites/test_suite_gcm.function
index c2f3534..d4dce93 100644
--- a/tests/suites/test_suite_gcm.function
+++ b/tests/suites/test_suite_gcm.function
@@ -111,7 +111,7 @@
         ASSERT_COMPARE( output, src_str->len, dst->x, dst->len );
         ASSERT_COMPARE( tag_output, tag_len, tag->x, tag->len );
 
-        for( n1 = 16; n1 < src_str->len; n1 += 16 )
+        for( n1 = 0; n1 <= src_str->len; n1 += 1 )
         {
             mbedtls_test_set_step( n1 );
             if( !check_multipart( &ctx, MBEDTLS_GCM_ENCRYPT,
@@ -159,7 +159,7 @@
             TEST_ASSERT( ret == 0 );
             ASSERT_COMPARE( output, src_str->len, pt_result->x, pt_result->len );
 
-            for( n1 = 16; n1 < src_str->len; n1 += 16 )
+            for( n1 = 0; n1 <= src_str->len; n1 += 1 )
             {
                 mbedtls_test_set_step( n1 );
                 if( !check_multipart( &ctx, MBEDTLS_GCM_DECRYPT,