Remove num_words member from curve structure

Saves code size, and makes the curve structure simpler.
diff --git a/include/tinycrypt/ecc.h b/include/tinycrypt/ecc.h
index 7d57f0f..d7ad318 100644
--- a/include/tinycrypt/ecc.h
+++ b/include/tinycrypt/ecc.h
@@ -124,7 +124,6 @@
 struct uECC_Curve_t;
 typedef const struct uECC_Curve_t * uECC_Curve;
 struct uECC_Curve_t {
-  wordcount_t num_words;
   wordcount_t num_bytes;
   bitcount_t num_n_bits;
   uECC_word_t p[NUM_ECC_WORDS];
@@ -160,7 +159,6 @@
 
 /* definition of curve NIST p-256: */
 static const struct uECC_Curve_t curve_secp256r1 = {
-	NUM_ECC_WORDS,
 	NUM_ECC_BYTES,
 	256, /* num_n_bits */ {
 		BYTES_TO_WORDS_8(FF, FF, FF, FF, FF, FF, FF, FF),
diff --git a/tinycrypt/ecc.c b/tinycrypt/ecc.c
index 7659e54..9a28b18 100644
--- a/tinycrypt/ecc.c
+++ b/tinycrypt/ecc.c
@@ -581,7 +581,7 @@
 	/* t1 = X, t2 = Y, t3 = Z */
 	uECC_word_t t4[NUM_ECC_WORDS];
 	uECC_word_t t5[NUM_ECC_WORDS];
-	wordcount_t num_words = curve->num_words;
+	wordcount_t num_words = NUM_ECC_WORDS;
 
 	if (uECC_vli_isZero(Z1)) {
 		return;
@@ -1042,7 +1042,7 @@
 {
 	uECC_word_t tmp1[NUM_ECC_WORDS];
 	uECC_word_t tmp2[NUM_ECC_WORDS];
-	wordcount_t num_words = curve->num_words;
+	wordcount_t num_words = NUM_ECC_WORDS;
 
 	/* The point at infinity is invalid. */
 	if (EccPoint_isZero(point, curve)) {
@@ -1072,7 +1072,7 @@
 
 	uECC_vli_bytesToNative(_public, public_key, curve->num_bytes);
 	uECC_vli_bytesToNative(
-	_public + curve->num_words,
+	_public + NUM_ECC_WORDS,
 	public_key + curve->num_bytes,
 	curve->num_bytes);
 
@@ -1112,7 +1112,7 @@
 	uECC_vli_nativeToBytes(public_key, curve->num_bytes, _public);
 	uECC_vli_nativeToBytes(
 	public_key +
-	curve->num_bytes, curve->num_bytes, _public + curve->num_words);
+	curve->num_bytes, curve->num_bytes, _public + NUM_ECC_WORDS);
 	return 1;
 }
 #else
diff --git a/tinycrypt/ecc_dh.c b/tinycrypt/ecc_dh.c
index e2f5655..b3f8f71 100644
--- a/tinycrypt/ecc_dh.c
+++ b/tinycrypt/ecc_dh.c
@@ -96,7 +96,7 @@
 				       _public);
 		uECC_vli_nativeToBytes(public_key + curve->num_bytes,
 				       curve->num_bytes,
-				       _public + curve->num_words);
+				       _public + NUM_ECC_WORDS);
 
 		/* erasing temporary buffer used to store secret: */
 		mbedtls_platform_memset(_private, 0, NUM_ECC_BYTES);
@@ -137,7 +137,7 @@
 					       _public);
 			uECC_vli_nativeToBytes(public_key + curve->num_bytes,
  					       curve->num_bytes,
-					       _public + curve->num_words);
+					       _public + NUM_ECC_WORDS);
 
 			/* erasing temporary buffer that stored secret: */
 			mbedtls_platform_memset(_private, 0, NUM_ECC_BYTES);
@@ -154,7 +154,7 @@
 
 	uECC_word_t _public[NUM_ECC_WORDS * 2];
 	uECC_word_t _private[NUM_ECC_WORDS];
-	wordcount_t num_words = curve->num_words;
+	wordcount_t num_words = NUM_ECC_WORDS;
 	wordcount_t num_bytes = curve->num_bytes;
 	int r;
 
diff --git a/tinycrypt/ecc_dsa.c b/tinycrypt/ecc_dsa.c
index a3b91b8..f4af4b6 100644
--- a/tinycrypt/ecc_dsa.c
+++ b/tinycrypt/ecc_dsa.c
@@ -219,7 +219,7 @@
 
 	uECC_word_t _public[NUM_ECC_WORDS * 2];
 	uECC_word_t r[NUM_ECC_WORDS], s[NUM_ECC_WORDS];
-	wordcount_t num_words = curve->num_words;
+	wordcount_t num_words = NUM_ECC_WORDS;
 	wordcount_t num_n_words = BITS_TO_WORDS(curve->num_n_bits);
 
 	if (curve != uECC_secp256r1())