base::open_folder: add support to open a folder/directory

Before this we were capable to open/locate a file inside a folder.
Add filename to raster::Palette (this will be useful to know the original location of a palette)
Add raster::Palette::addEntry() and load .gpl files using this addEntry

At the moment the program doesn't support palettes with less than 256
colors. But at the future the idea is to load the number of colors that
the palette says.
Add base::concurrent_queue: a really simple concurrent queue

- Add base::scoped_unlock
Add SetPaletteCommand
Add PalettePopup in ColorBar to load predefined palettes from data/palette/

- Add PalettesLoader helper class to load palettes in background
- Add PaletteListBox widget
- Add PalettePopup widget
Add missing OVERRIDE modifier to OpenFileCommand member functions
Add pixel art palettes

From Richard 'DawnBringer' Fhager and Arne Niklas Jansson.