Allow subclassing of Boom

Allow the subclassing of Boom to create custom Boom errors with extended functionality.

Added failing test and fix which allows subclassing.

Before the fix, if you try to subclass Boom, the error `Error must be instantiated using new` is thrown because the code checks the constructor is Boom. 

To allow subclassing the check could instead check using `instanceof`.

Example code which fails without the fix:

```javascript
function BoomSubclass(err) {
    Boom.call(this, err);
    this.upcaseMsg = err.message.toUpperCase();
}
Util.inherits(BoomSubclass, Boom);
var boomSubclass = new BoomSubclass(new Error('foo'));
```