Update Receipt.java

you are again right! the receipts are missing the bookside!
also, the fields 
residualSize,currentTradedSize,totalTradedSize
should always be positive numbers. 
only the bookside decides about the sign of the resulting position change.
Receipt should get methods that calculate the signed sizes, like:

Decimal getResidualSizeSigned() {
return bookside.toDirection() * residualSize;
}

the above is pseudo code...