fix #1273333. Don't rollback on cancel

Only rollback the library if we had another problem then canceling the
recursive scan.
save hashes only after we scanned a folder
Add ColumnCache class for maintaining a reverse index of column to position and
doing efficient column index lookups.
Switch BaseTrackCache and BaseSqlTableModel to use ColumnCache.
Add LIBRARYTABLE_PREVIEW definition.
Convert most uses of fieldIndex to use the integer-based version provided by ColumnCache.

Fixes a lot of hotspots identified when profiling rapid scrolling of the
library. For some simple QAbstractItemModel calls such as flags/data/etc. We
were doing ten to twenty QHash lookups per call.

The main effect of this is that the variance of these methods is drastically
reduced. They

BaseSqlTableModel::data max duration dropped from 6.7ms to 200us.
BaseSqlTableModel::flags max duration dropped from 459us to 122us.

Before:

Debug [Main]: Stat("BaseSqlTableModel::data","count=116189,sum=3.95154e+08ns,average=3400.96ns,min=61ns,max=6.73647e+06ns,variance=4.47143e+08ns^2,stddev=21145.8ns")
Debug [Main]: Stat("BaseSqlTableModel::fieldIndex","count=359787,sum=1.24198e+08ns,average=345.197ns,min=63ns,max=425162ns,variance=647674ns^2,stddev=804.782ns")
Debug [Main]: Stat("BaseSqlTableModel::flags","count=16235,sum=1.99808e+08ns,average=12307.3ns,min=7143ns,max=459422ns,variance=2.95675e+07ns^2,stddev=5437.6ns")

After:

Debug [Main]: Stat("BaseSqlTableModel::data","count=65178,sum=1.9198e+08ns,average=2945.48ns,min=46ns,max=222070ns,variance=4.16533e+07ns^2,stddev=6453.94ns")
Debug [Main]: Stat("BaseSqlTableModel::fieldIndex","count=203124,sum=3.24614e+07ns,average=159.811ns,min=52ns,max=29400ns,variance=28627.4ns^2,stddev=169.196ns")
Debug [Main]: Stat("BaseSqlTableModel::flags","count=9126,sum=9.51987e+07ns,average=10431.6ns,min=5844ns,max=122019ns,variance=1.60006e+07ns^2,stddev=4000.08ns")
some code cleanups
Fix possible race condition with seek positions on 32 bit architectures
Some minor refactoring of seek queue
Some coding style fixes
removed null seeks when changing scale or direction
Removed null play button sets. This fixes Bug #1276842 endles loops with quatize enabled
fixed double getPhaseOffset() call when pressing play and quatized on
fix sign missmatch warning
Updated to letest deverloper_skins
Ignore MIDI_NOTE and rely on dParam when mapping Midi Pushbuttons.
Probably fixes https://bugs.launchpad.net/mixxx/+bug/1277449
Merge pull request #174 from daschuer/sync_enabled

Endless Loop fix with quatize on + some refactoring
Fixed bush and release interpretation again accoring to the midi specs
Merge pull request #175 from daschuer/midi_note_ignore

Ignore MIDI_NOTE when dParam == 0 mapping Midi Pushbuttons.