Implementations for scalar without data-dependent branches.
Misc. Warning and cosmetic error cleanups.

This fixes a cosmetic precedence bug in the tests along with some
 type warnings.

It also adds a dummy cast to the CHECK macro to avoid hundreds
 of statement with no effect warnings on compilers that warn about
 such things.
Remove some dead variables in the tests.
Merge pull request #77

1d52a8b Implementations for scalar without data-dependent branches. (Pieter Wuille)
Merge pull request #95

79ad6d4 Remove some dead variables in the tests. (Gregory Maxwell)
9974d86 Misc. Warning and cosmetic error cleanups. (Gregory Maxwell)
Add autoreconf warnings. Replace obsolete AC_TRY_COMPILE.
Remove redundant checks (already done by LT_INIT).
Remove INCLUDES. Obsolete, appears unused anyway.
Use same build template as bitcoin. Add bitcoin_secp.m4.
Branch-free point addition
Rearrange _gej_add_ge to save an _fe_negate
Merge pull request #98

fb1bb0b Rearrange _gej_add_ge to save an _fe_negate (Peter Dettman)
9338dbf Branch-free point addition (Pieter Wuille)
Document some preconditions
Merge pull request #99

c27fdc0 Document some preconditions (Pieter Wuille)
Merge pull request #96

6fac238 Use same build template as bitcoin. Add bitcoin_secp.m4. (kiwigb)
f9aac5b Remove INCLUDES. Obsolete, appears unused anyway. (kiwigb)
db72c18 Add autoreconf warnings. Replace obsolete AC_TRY_COMPILE. Remove redundant checks (already done by LT_INIT). (kiwigb)
Add non-null and unused-result warnings for the external API.

GCC (and clang) supports extensions to annotate functions so that their
 results must be used and so that their arguments can't be statically
 provable to be null. If a caller violates these requirements they
 get a warning, so this helps them write correct code.

I deployed this in libopus a couple years ago with good success, and
 the implementation here is basically copied straight from that.

One consideration is that the non-null annotation teaches the optimizer
 and will actually compile out runtime non-nullness checks as dead-code.
 Since this is usually not whats wanted, the non-null annotations are
 disabled when compiling the library itself.

The commit also removes some dead inclusions of assert.h and introduces
 compatibility macros for restrict and inline in preparation for some
 portability improvements.
Merge pull request #101

8563713 Add non-null and unused-result warnings for the external API. (Gregory Maxwell)
Avoid division when decomposing scalars

- In secp256k1_gej_split_exp, there are two divisions used. Since the denominator is a constant known at compile-time, each can be replaced by a multiplication followed by a right-shift (and rounding).
- Add the constants g1, g2 for this purpose and rewrite secp256k1_gej_split_exp accordingly.
- Remove secp256k1_num_div since no longer used