verify user authentication before allowing access to most API functions

* Also move functions available to unauthenticated users into a separate BMInterface class, BMInterfaceNewuser
* Fixes #625
* Jenkins: http://jenkins.buttonweavers.com:8080/job/buttonmen-cgolubi1/183/