Human readable duration search

Addresses this (https://bugs.launchpad.net/mixxx/+bug/1261493) wishlist bug

MIXXX can only search duration in seconds.
Searching tracks with duration keyword is made more natural. User can
search now in following formats

2:30/2:30m
2:30:45/2:30:45h
2m30s/2m30
2h30m45s/2h30m45

In user manual we should encourage our users to use top two formats.
Humanreadable duration search enabled
REF: use 'else if' instead of boolean check
Create dedicated duration query node

Duration does not accept only a simple numeric value anymore. Instead
handle it as a special search note.
REF: time string parsing

Parse directly with a qregexp. Simplify the code. This also changes the
format of time strings that are supported. To search for a track of
exactly 90 seconds the following terms are equivalent.

90
90s
1m30
1m30s
1:30

searching for 62 seconds can be entered as

62
62s
1m2
1m2s
1m02s
1:2
REF: deduplicate Code

DurationFilterNode is now a child of NumericFilterNode. The can share
the same toSql and match functions once the argument is parsed.
REF: parseTime, remove qDebug statement
REF: use init method in NumericFilterNode

To deduplicate code the numeric filter now uses a init function and a
generic 'parse'. This way any child class of NumericFilterNode only has
to reimplement the parse function.
fix wrong parsing of '2m'

this was parsed as 2 seconds. This fixes it and also add tests for it.
Merge pull request #327 from kain88-de/humanreadable-search

Humanreadable search