Alter homepage caching not to cause InternalError.

The change is based on the following test. You need two separate
connections to the db. On the first run:

    create table a (i int4);
    insert into a (i) values(1);
    begin;
    delete from a;

Now on the second connection run:

    select * from a;

That does not block and returns "1". The thing is that we can freely
update the table "a" in a transaction and not block parallel reading
of the original data in the table.

Open question: Does Heroku have some autovacuming on? If not we should
turn it on or the homepage tables will grow beyond bounds (the deleted
data is expunged only by a vacuum run).
Fix failing test (tables no longer recreated).
Merge pull request #1547 from gittip/fix-homepage-race

Alter homepage caching not to cause InternalError.