* refactor to clean up LDAP login, and make the login method easier to handle.
* Login refactor cleanup
* Google 2FA package
* Adds Google Authenticator two-factor
* Removed unused blade
* Added optin setting in profile
* Removed dumb comments
* Made lock_passwords check more consistent
* Additional two factor strings
* Lock passwords check
* Display feature disabled text if in demo mode
* Two factor admin reset options
* Translation strings
* Create a new action_log table to replace asset_log. Use Polymorphism to generalize class and targets. Port everything I can find to use it. Add a migration to port the asset_logs table to action_logs.
* Initial work on requestable asset models
* Backend work for polymorphic requests table to store checkout requests.
* Add missing files
* Add a record to the db when requesting items. Build up a testing route for interfacing with this.
* Users can now toggle requests of items on the request page. Reformat page to use the same tab layout we use elsewhere
* Polymorphic request function. Implement requesting of asset models. Need to port mail/slack to notifications still.
* Implement requesting of asset models. Build up emails and notifications to support it. Allow specifying a quantity of model to request.
* Add view to show currently requested assets. Needs some work and cleanup, but it isn't accessible from anywhere yet.
This allows for centralizing the category fetching code more and fixes
an error in asset model viewing (#2118). Also add a few translated
strings and standardize on a base of 'Select a *' for the default value
in our lists.