Support single redis DB.
Various cleanups to Ubuntu installation instructions:

* Avoid editing /etc/apt/sources.list add nginx repo, instead create
  /etc/apt/sources.list.d/nginx.list

* Avoid editing /etc/nginx/nginx.conf, instead put server_name_hash_buckets
  setting into discourse.conf

* Proper-case Discourse when it is referring to the product name, so that all
  the lowercase references are to the user created during the installation
Address @Supermathie's concerns in PR1430
Locate the Puma config file.
Update puma.rb
FIX: Title text should be correctly escaped since we are generating a raw html.
Added some missing references, see https://github.com/rails/rails/issues/12982
adds small HasCurrentUser mixin test improvements
fixes HeaderController test
adds unit tests for Discourse.TextField
adds unit tests for SearchTextField
Correct few spelling in the comments
Added some missing spanish translations
Add Global Keyboard Shortcuts

Not all of these have been fully implemented yet.

**Jump To**
* `g` then `h` - Home (Latest)
* `g` then `l` - Latest
* `g` then `n` - New
* `g` then `u` - Unread
* `g` then `f` - Favorited
* `g` then `c` - Categories List

**Navigation**
* `u` - Back to topic list
* `k` / `j` - Newer/Older conversation or post
* `o` or `Enter` - Open selected conversation
* <code>`</code> - Go to next section
* `~` - Go to previous section

**Application**
* `c` - Create a new topic
* `n` - Open notifications menu
* `/` - Search
* `?` - Open keyboard shortcut help

**Actions**
* `f` - Favorite topic
* `s` - Share topic
* `<Shift>` + `s` - Share selected post
* `r` - Reply to topic
* `<Shift>` + `r` - Reply to selected post
* `l` - Like selected post
* `!` - Flag selected post
* `b` - Bookmark selected post
* `e` - Edit selected post
* `d` - Delete selected post
* `m` then `m` - Mark topic as muted
* `m` then `r` - Mark topic as regular
* `m` then `t` - Mark topic as tracking
* `m` then `w` - Mark topic as watching
move unhashed images into public images directory. asset precompile does not keep around unhashed urls in prd
split js with vendor/application
avoid one huge js bundle and instead break it down
to application and vendor (3rd party) our app changes
a lot, vendor changes a lot less
update psuedo locale
fix tests, clean up include logic
Got rid of crazy user name split
instead decorate with <wbr> to hint on best
spot to split
fix build?