Fix for logic in IsTransactionFree (and minor update for information exception)

The big one here is the logic change in IsTransactionFree.  Please double check me closely, but I think the important thing here is not the maximum amount spent but the minimum amount.  A fee gets charged if any output (including the change) is less than Parameters.FreeTransactionMinimumOutputAmountInCoins.