Hi, I'v wrote a extension for ERC20 Token, which added a built-in exchange in contract.
I'm a newbie on solidity(I think), So Welcome pull request and security-check, And there is no GUI yet.
https://github.com/RyanKung/exchangeableERC20Note that:
Trader should search matchedBid/Ask and fill it manauly.