I've been planning a side project with a lot of those features. That's exactly how I think about my budgeting and that's exactly how I would like to allocate my money. I'm really not aware of any way to do this currently, apart from a lot of manual work in a spreadsheet, which is annoying and still requires restraint in spending. Mint isn't even that helpful when it comes to budgeting because their alerts and categories are always inconsistent and they change categories that you've set for no apparent reason. Not to mention the ads.
Unfortunately, getting data from bank accounts is a pain due to bank security. The approach I was going to use just to get started was to export Mint's data as a csv, and then build an app around that until I read up on the bank transaction formats that would let you pull your transaction history. Not ideal, though.