decoration time order checking for auth decorators like admin_required
decoration time order checking for auth decorators like admin_required

If you sloppily added an `@auth.admin_required` decorator above the
`@app.route(...)` lines you would notice that the permission is not
checked.

The reason for this is that the `@app.route(...)` decorator registers
the view function as is "from bottom up to the route decorator and not
further" in `app.view_functions`.

This commit introduces checks which are performed once at decoration
time to check if the passed in function is already part of the
`app.view_functions` and the permission logic would be skipped.
If this is the case a SyntaxError is raised notifying the developer.

wilfriedE/gae-init,tiberiucorbu/av-website,gae-init/gae-init,wodore/wodore-gae,gmist/my-gae-init,lovesoft/gae-init,vanessa-bell/hd-kiosk-v2,topless/gae-init,gmist/five-studio2,gmist/1businka2,gae-init/gae-init-debug,gmist/my-gae-init,lipis/guestbook,gae-init/gae-init,vanessa-bell/hd-kiosk-v2,mdxs/gae-init-babel,gae-init/gae-init-babel,dhstack/gae-init,gae-init/gae-init-babel,gmist/nashi-5studio,topless/gae-init-upload,lipis/life-line,georgekis/salary,lipis/electron-crash-reporter,mdxs/gae-init-babel,gmist/five-studio2,gae-init/gae-init-upload,georgekis/salary,gmist/ctm-5studio,jakedotio/gae-init,topless/gae-init-upload,lipis/github-stats,lipis/the-smallest-creature,gmist/ctm-5studio,topless/gae-init-upload,lipis/gae-init,gae-init/gae-init-babel,gae-init/gae-init-upload,lipis/the-smallest-creature,gae-init/gae-init-docs,gae-init/gae-init-debug,jakedotio/gae-init,gmist/my-gae-init,gae-init/gae-init,lipis/gae-init,mdxs/gae-init,lipis/life-line,terradigital/gae-init,lipis/meet-notes,NeftaliYagua/gae-init,lipis/the-smallest-creature,wodore/wodore-gae,mdxs/gae-init-docs,gmist/1businka2,gmist/fix-5studio,gmist/fix-5studio,georgekis/salary,lipis/meet-notes,vanessa-bell/hd-kiosk-v2,topless/gae-init,gae-init/gae-init-upload,mdxs/gae-init,lipis/electron-crash-reporter,gae-init/gae-init,gmist/five-studio2,lipis/gae-init,lipis/github-stats,NeftaliYagua/gae-init,NeftaliYagua/gae-init,terradigital/gae-init,tiberiucorbu/av-website,wodore/wodore-gae,dhstack/gae-init,gae-init/gae-init-upload,mdxs/gae-init-babel,d4rr3ll/gae-init-docker,tiberiucorbu/av-website,wilfriedE/gae-init,lipis/gae-init,gmist/ctm-5studio,lovesoft/gae-init,gae-init/gae-init-debug,gmist/nashi-5studio,gmist/alice-box,wodore/wodore-gae,dhstack/gae-init,d4rr3ll/gae-init-docker,gae-init/gae-init-docs,lipis/electron-crash-reporter,gmist/1businka2,mdxs/gae-init,gmist/ctm-5studio,lipis/github-stats,d4rr3ll/gae-init-docker,jakedotio/gae-init,gmist/alice-box,gmist/my-gae-init-auth,gae-init/gae-init-debug,gae-init/gae-init-babel,d4rr3ll/gae-init-docker,lipis/github-stats,gmist/five-studio2,gmist/my-gae-init,mdxs/gae-init,lipis/meet-notes,topless/gae-init,gae-init/gae-init-docs,gae-init/gae-init-docs,gmist/nashi-5studio,gmist/fix-5studio,lipis/life-line,topless/gae-init,lovesoft/gae-init,gae-init/phonebook,vanessa-bell/hd-kiosk-v2,gmist/fix-5studio,terradigital/gae-init,wilfriedE/gae-init,jakedotio/gae-init