Submitted by gpersoon
The function _transfer in SherXERC20.sol allow transfer to address 0.
This is usually considered the same as burning the tokens and the Emit is indistinguishable from an Emit of a burn.
However the burn function in LibSherXERC20.sol has extra functionality, which _transfer doesnt have.
sx20.totalSupply = sx20.totalSupply.sub(_amount);
So it is safer to prevent _transfer to address 0 (which is also done in the openzeppelin erc20 contract)
See:  https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol#L226
Note: minting from address 0 will not work because that is blocked by the safemath sub in:
sx20.balances[_from] = sx20.balances[_from].sub(_amount);
Recommend adding something like to following to _transfer of SherXERC20.sol:
Or, updating sx20.totalSupply if burning a desired operation.
Evert0x (Sherlock) confirmed
