Remove network parameter from PrivateKey

The `PrivateKey` have a `network` reference because we are supporting the `WIF` format. However that is somehow cumbersome to understand. Private keys should be network agnostic.

This PR proposes the removal of the `network` argument while still importing the `WIF` format. The new interface looks like this:

```
var priv1, priv2;
priv1 = new PrivateKey();

priv2 = new PrivateKey(priv1);
priv2 = new PrivateKey(priv1.bn);

priv2 = new PrivateKey(priv1.toString());
priv2 = new PrivateKey(priv1.toBuffer());
priv2 = new PrivateKey(priv1.toJSON());
priv2 = new PrivateKey(priv1.toWIF());

var wif = 'L5VAA64X5fBY6Ve1umoXfRR3FdywkJcHr45sBtM4C7gnBP2HcX3U';
priv2 = new PrivateKey(wif);

var wifObj = PrivateKey.fromWIF(wif);
// returns { privateKey: <PrivateKey: .... >, network: 'livenet' }
```

Also, the `PrivateKey.toString()` has been been changed to use the `BN.toString('hex')` representation.
```
var key = privateKey.fromWIF('L3T1s1TYP9oyhHpXgkyLoJFGniEgkv2Jhi138d7R2yJ9F4QdDU2m');
var wif = key.toWIF();
// wif should equal the same, with any network or compressed bytes
```