445374 - Reevaluate org.eclipse.jetty.websocket.jsr356 enablement concepts

+ Making key also work inside of WEB-INF/web.xml via context params
+ Making WebSocketUpgradeFilter generic enough to be used in a
  web.xml descriptor
+ Adding global={bool} init-param on WebSocketUpgradeFilter to aid
  library developers and end users more ways to tweak the filter
  order
445374 - Reevaluate org.eclipse.jetty.websocket.jsr356 enablement concepts

+ After talking it through with Simone, swapping out 'global' init-param
  with a bit more robust 'contextAttributeKey' to handle the automatic
  context.setAttribute() of the filter itself.
  As simply having a filter in the web.xml makes it alive, but nothing
  is wired up into it, and accessing the filter instance via the
  context metadata seems impossible.  So we made the init-param for
  'contextAttributeKey' important and required, but with defaulting
  and validation checks.
445374 - Reevaluate org.eclipse.jetty.websocket.jsr356 enablement concepts

+ Since SCI adds filters, but init() isn't run till later, that means
  the context attribute for the WebSocketUpgradeFilter isn't present
  during jsr356 runs.  Added ability for manual filter creation to call
  setToAttribute() as a pre-init step, allowing the init() itself to
  bypass the set to attribute for that specific filter instance.
+ This also means ServletException is now thrown out from the
  various configureContext() static methods.