Enforce repository size before push is accepted
Summary
We only check the size of a repo after a push has been accepted. So as long as a user is fine with read-only data, they can still do a huge backup or CDN push to GitLab.com and leave it in a read-only state.
Steps to reproduce
Set a 1MB repository size limit on a repository. Push any amount of files or commits to it, even commits after exceeding the size limit, as long as it is all pushed at once.
Expected behavior
GitLab: Your push has been rejected, because it would exceed your repository size limit of 1mb by 320MB
What happens instead
It accepts the push just fine
\cc @stanhu @pcarranza @DouweM