Hex Output Padding

Added tests to make sure that BN.toString('hex') can be input into  new Buffer(..., 'hex').
 `1 < null` evaluates to `false` so padding may not need to be set (unless using `%`)

Using `%` would work if if the first number was 1 to 15, where `padding` would be the boundry (2 for example), however not for 0, since it would be ommitted. Padding here represents the expected length to output, example:

```javascript
var byteArray = [0,0,0,0];
var a = new BN(byteArray);
var b = new Buffer(a.toString('hex', 8), 'hex');
// b would equal <Buffer 00 00 00 00>
```