Split 'common/' into commit 'f17223d9e9a4607c5038a6fcc4fc8953f65f3a0f'

git-subtree-dir: common
git-subtree-mainline: 3f07a0a3f0d6ea9b47776b5cc5e596ee30d64a2b
git-subtree-split: f17223d9e9a4607c5038a6fcc4fc8953f65f3a0f
Merged frostwire-common changes
Split 'common/' into commit '06c775c5191dfe3f4b1526283f9feeb71a9c1ac2'

git-subtree-dir: common
git-subtree-mainline: 58c783321b0385da90a71e85c7dbaecaac501828
git-subtree-split: 06c775c5191dfe3f4b1526283f9feeb71a9c1ac2
Optimization for android in Namespace URI creations.
Fixed performance issue inside Location constructor, issue coming back to Namespace.
API change to avoid use of URI at all (very slow in both android and regular jdk).
Optimization for seamless Headers creation (reusing StringBuilder in readLine and toString). DalvikVM and Android still perform badly in short lived objects creation. Fixed bug in Namespace string uri path creation.
Optimization of ServerClientTokens.getHttpToken, avoid use of replaceAll regex based and use StringBuilder char method when possible.
DRY refactor
Don't create and append unnecessary String objects with log calls when sending datagrams, too expensive.
Header key normalization is now optional. On android, with lots of devices sending messages this method can consume a large amount of CPU, increased the readLine StringBuffer and performed some light optimizations that matter on Android inside the normalize() method.
Don't create unnecessary String and StringBuilder objects for logging.
Importing code from apache commons io.
Adding MimeDetector to common.
Refactor to have better common search code.
Minor visibility change in http server Code class.
Deleted commons-io jars from common (using minimal source code).
Merge branch '5.5.6-newsearch' of https://github.com/frostwire/frostwire-desktop into 5.5.6-newsearch
Merged frostwire-common changes
missing files from apache commons