use diffstat to provide a nice status command, change list to behave like show used to, add some diff/diffstat related code cleanup