Factorize both Js and css code associated with download button.

* Rename class associated with download button to a more generic
name 'extensionActionButtonWrapper'. Also ensured that the same class and
html is used between the different view.

* Add {js/css}/common/ files for functionality and style shared by the different
view.

* Factorize the existing css used to render the "extension action button"

* Factorize functionality allowing to update the button state into
multiple function:
  - click handler: extensionButtonClick
  - updateExtensionButtonState
  - setExtensionButtonState

* The following design should allow to easily associates new state with
the "extension action" button. (i.e an 'update' state)
Breadcrumbs links should retain os,arch,revision settings for filtering
Display contributors for extensions on the index page
Init os/arch/release selects if specified on the extension index page
Handle login/register links for ratings module widgets
Add dialog capability and login/register link overrides to slicerView
Can now log in and register through extension view page
Logout link on extension view page
Put login/register links on register/login dialogs, respectively
Display validation errors on login and register forms
Add pretty date and size fields in the extension view
Use new empty layout mechanism from core
Paginate extension results
BUG: name collision on login form caused incorrect styling
Fix style problem with flow layout
Move loading message below pagination control div
Include required jquery.form.js in our extension view page
Fix module webroot reference so that lightbox will display properly
Fix image path for real this time
Fix form alignment on slicer app store index page