Which database to use?
A few db's that come close:

1:  Postgres-XC, meets most areas except that sharding takes some design effort

2:  VoltDB, meets most areas except for data larger than memory

The key question though is why do you need the autosharding?  Anything automatic adds complexity and if you are big enough to require sharding, you can probably afford to have the experts look carefully at how best to do this (i.e. via Postgres-XC).

Honestly, I think the best option for most people in your position is to start with PostgreSQL and plan on scaling up and out with bigger servers and Postgres-XC when you get to the point that you need this.  But there are a lot of big systems out there that run on PostgreSQL, including Skype and Instagram, so it certainly can do web scale even without sharding.