This is Gilles Englebert's BSc thesis.