Use non-branching Montgomery ladder for point multiplication

Big thanks to @isislovecruft and @conradoplg for their advices (see #16)

@btcdrak @petertodd Gonna need a thorough review of this (build passes, except HHVM, but that's due to a missing function in their GMP implementation) -- the more reviewers, the merrier
Please do not use `@author` tags.