Crypto::Point API for Curve25519

So I've been learning a little bit more about Edwards curves, and I was thinking about the OpenSSL::PKey::EC::Point API (as horrid as that name is, and as horrid as the API is) and thought this might be another way to rework scalar multiplication into an object oriented API.

How did it turn out? OK, I think, it's object oriented, but not really arguably better.

The API for public key calculation becomes:

```ruby
Crypto::Point.base.mult(private_key)
```

You will have to add `#to_bytes` to fully duplicate the original behavior.

One thing I don't like about the API is that apparently the commonly accepted ordering for group multiplication is:

    integer * Point

This API forces:

    Point.mult(integer)

Which is effectively backwards.

I didn't preserve the original class methods, but with the ability to do `Crypto::Point.base.mult(integer)` I really don't think it matters.