Edge-disjoint spanning trees of finite graphs