[OC-4467] remove OpenID support from chef-server-webui
[OC-3469] recreate Chef::WebUIUser as Rail's model
[OC-3469] refactor User model/controller for Erchef endpoints

Erchef contains the following user related endpoints:

* GET,POST /users
* POST /authenticate_user
* GET,POST,PUT,DELETE /user/:name
[OC-3469] follow Rails resourceful idioms in users model/controller

* simplify routing and control flow
* update path/url route helper naming
* leverage ActiveModel::Validations for all validation logic
* update users views to handle validation
[OC-3469] ensure session helpers are avail in controllers/views
[OC-3469] convert str_to_bool to value_to_boolean

Implementation taken from ActiveRecord.
[OC-3469] Update CSS for recent refactors/improvements.
[OC-3469] create a DRY wrapper client around Chef::REST

Currently we create an instances of Chef::REST every time we want to
make a call to the Chef API.  We also `Chef::Config[:chef_server_url]`
everywhere instead of configuring as single time on application
initialization.

The module also exposes a ChefServer::Config class where we can move
all `web_ui` Chef::Config values into.
[OC-3469] add http_status_exceptions gem

This simple plugin will register exception classes for all HTTP status.
These exceptions can then be raised from your controllers, after which a
response will be send back to the client with the desired HTTP status,
possible with some other content.
[OC-3469] replace Merb exceptions with appropriate HTTPStatus versions

The code was raising a bunch of Merb-specific exceptions, a vestige from
the recent Merb -> Rails3 conversion.
[OC-3469] make ChefServer::Client log it's errors

We can remove a lot of duplicate code by ensuring that ChefServer::Client
logs errors for any exceptions that originate form it.

Obviously this doesn't help us if REST requests are made with the core 
Chef model classes (which call Chef::REST under the covers).
[OC-3469] clean up DataBag related controllers/views

* ensure @databag_name and @databag_item_name are passed to views
* DatabagItemsController should redirect back to parent databag show
* remove databag_items routes that don't have real views
* add navigation back to parent databag from databag item views
* Validate names/ids using build in methods in Chef classes
[OC-3469] route all API calls through ChefServer::Client

* allows easy injecting additional request headers, i.e. 
x-ops-request-source
* remove stack trace logging strewn throughout codebase
[OC-3469] fix search functionality

* move search query calls to ChefServer::Client
* move `determine_name` view helper into SearchHelper module
* remove old decrepit search entries routes/code
[OC-3469] improve client view's usability

* place public/private key data in text area
* add 'clippy' for Github-style copy to clipboard functionality
[OC-3469] authorize Erchef API requests as logged-in user

* create ChefServerWebui::ApiHelper which exposes a `client` and 
`client_with_actor` method depending on who the API request should authz 
as.
* move config object into more appropriate ChefServerWebui module
* add `around_filter` to ApplicationController for setting current 
session user in Thread.current hash which makes the current user 
accessible to non-Rails code
* update codebase to use ChefServerWebui.client and 
ChefServerWebui.client_with_actor for all API calls to Erchef
[OC-3469] DRY up user session handling

* user more aptly named :current_user_id for storing current user id in
session
* add global `current_user` method that returns current, logged-in user
* remove `is_admin?` method; prefer current_user.admin?
* move `is_last_admin?` into User model as `last_admin?` instance method
* global `login_required` filter now `require_login`
[OC-3469] handle all uncaught exceptions gracefully

* add `log_and_flash_exception` helper method
* add global rescue_from handler for all uncaught exceptions
* update all controllers who catch exceptions to call
`log_and_flash_exception`
[OC-3469] use Rails logger for all controller logging
[OC-3469] stop using Chef::Search::Query for searches

Performing searches against the endpoints directly will allow us to
control the underlying request headers. ie. x-ops-request-source=web