Bitcoinjs point code merge + fixes for point decoding

This pull request merges all the indentation, formatting and optimizations for `point.js` into ecurve.
To save on re-iterating the changes here, I will be commenting below on any non-obvious changes to the code and will happily answer any questions.

I've also added failing test cases for `decodeFrom`, which up until now has been specifically coded to only work for the `secp256k1` curve used by Bitcoin.