Cache pre-computed points for ecp_mul()

Up to 1.25 speedup on ECDSA sign for small curves, but mainly useful as a
preparation for fixed-point mult (a few prototypes changed in constness).
diff --git a/library/ecdh.c b/library/ecdh.c
index 050f99d..400e45f 100644
--- a/library/ecdh.c
+++ b/library/ecdh.c
@@ -39,7 +39,7 @@
 /*
  * Generate public key: simple wrapper around ecp_gen_keypair
  */
-int ecdh_gen_public( const ecp_group *grp, mpi *d, ecp_point *Q,
+int ecdh_gen_public( ecp_group *grp, mpi *d, ecp_point *Q,
                      int (*f_rng)(void *, unsigned char *, size_t),
                      void *p_rng )
 {
@@ -49,7 +49,7 @@
 /*
  * Compute shared secret (SEC1 3.3.1)
  */
-int ecdh_compute_shared( const ecp_group *grp, mpi *z,
+int ecdh_compute_shared( ecp_group *grp, mpi *z,
                          const ecp_point *Q, const mpi *d,
                          int (*f_rng)(void *, unsigned char *, size_t),
                          void *p_rng )