fix NPE in UpdateTrackInfo
Directory: Remove MPD field, add a parameter with refreshData.
Directory: Add a (full) constructor.
Directory: Add a method to generate a directory with a custom name.
FSFragment: Remove unnecessary empty directory check.

MPDCommand is null safe, and empty arguments are meaningless with lsinfo.
Directory: Refactor refreshData().

This refactors refreshData() and getDir() as refresh(). This combines the two
as one method. This also fixes a few possible races. Finally, this fixes
issue #617. This bug was caused by quite an old regression where entry maps
were not cleared prior to updating, which is required because there is
no differential directory updating in the MPD protocol and we can't clear the
entries that no longer exist.
Directory: Prevent a few unlikely but possible races.

Lock when iterating over a collection.
Directory: Clean up a few warnings.
Directory: Improve the javadoc.
dmix: Add javadoc to Android build variants.
gitignore: Remove redundant values.

Remove the top half that were already defined under build/, remove
workspace as being previously defined.
dmix: Update to API 21, add JMPDComm backend iml files.
NowPlayingFragment: Fix a popup menu regression from 51cecb7.

This fixes a popup menu regression where we used to always fill in some Music
fields in with an empty string that now will be null.

This fixes issue #618.
NowPlayingFragment: Fix a regression from 43371c9.

This is another case where we now return null where we used to return an empty
string.

Fixes issue #620. This also converts the appended string into a string builder.
Music: Fix one off regression from ba1abd7.

This caused stream extensions to get chopped by one character.
NowPlayingFragment: Replace ternary operators.
NowPlayingFragment: If views aren't found by id, allow exception to be thrown.

The only way these shouldn't be found is if someone changes them, and that
would be a good thing for the changer to know.
NowPlayingFragment: Correctly consume onLongClick().

If we consume onLongClick() incorrectly, a confusing vibration will be emitted.
NowPlayingFragment: Set random and repeat by attribute, remove track fields.

Abstract out button enabling by attribute. Remove the status tracking fields.
Don't duplicate setting the buttons.
NowPlayingFragment: Move seekBar long construction from onCreateView().