Fix use of uninitialized value in wav.c

Old version uses uninitialized `*size` if the file is corrupt.
This also fixes the bug that corrupt wav files can crash cmus.
Merge pull request #86 from mahkoh/wav

Fix use of uninitialized value in wav.c
Improved shuffle mode

When a track is manually chosen in shuffle mode, it is inserted at current
position in the shuffle list.
Rename several functions

  tree_set_selected ->   tree_activate_selected
sorted_set_selected -> sorted_activate_selected
    pl_set_selected ->     pl_activate_selected

      tree_set_next ->   tree_goto_next
    sorted_set_next -> sorted_goto_next
        pl_set_next ->     pl_goto_next

      tree_set_prev ->   tree_goto_prev
    sorted_set_prev -> sorted_goto_prev
        pl_set_prev ->     pl_goto_prev
Merge pull request #87 from mahkoh/shuffle

Shuffle + Rename

Should make #39 a bit better.
Fix use-after-free in browser

browser_load frees browser_dir but ptr, which points to a substring of
browser_dir, is used afterwards.
Merge pull request #88 from mahkoh/use-after-free

Fix use-after-free in browser
Trim release dates to year

This makes it consistent with how dates are handled in expr.c
Merge pull request #89 from alexkay/master

Trim release dates to year
Add solarized light/dark themes

Requires your terminal to be set to solarized:
https://github.com/altercation/solarized

More info from solarized: http://ethanschoonover.com/solarized

Themes originally based on data/green-mono-88.theme
Merge pull request #92 from losingkeys/solarized

Add solarized light/dark themes
[Themes] License the 'Night' theme under the GPL v2
Merge pull request #93 from pejakm/nthl2

[Themes] License the 'Night' theme under the same license as cmus
Remove two unused variables
Merge pull request #94 from mahkoh/warnings

Remove two unused variables
fixed segmentation fault in status command with http stream
Merge pull request #95 from msoap/master

fixed segmentation fault in status command with http stream
update help view after :bind
reload playlist with :win-update
Fix worker race condition in main loop

There is a race condition in the main loop where a job finishes after
`update` is called but before `worker_has_job` is called. For example:
`:load` in the playlist view sometimes leaves the user with an empty
playlist.

This can be fixed by calling `worker_has_job` before `update` but then the
user has to wait up to 250ms for the results to show up. Instead we add a
new function `ui_curses_notify` that can be called any time and causes the
main loop to wake up. This function is called in `free_add_job`.