license extractor

extract dependency license information
add url, email
Merge pull request #1 from elasticsearch/master

sync with es/es
assert randomization

add randomization to disable assert, 10% chance that test will run with
tests.assertion.disabled=org.elasticsearch
[SPEC] Renamed snapshot/restore apis
[SPEC] Moved the cat API into its own namespace and added missing qs params
[SPEC] Separated info.json into info and ping.json (GET vs HEAD)
[SPEC] Fixed file name, missing .json
Merge pull request #4747 from mrsolo/features/test_randomization

Add randomization logic for assert.  Tests will have 10% chance running with assertion disabled.
Merge pull request #4714 from mrsolo/features/thirdparty

third party library license information extractor for logstash
[TEST] Fixed mget test which used deprecated refresh flag
[SPEC] Fixed cat.* spec files - were missing the endpoints
[SPEC] Fixed cluster.get_repository spec
Badly named endpoint
[SPEC] Fixed bad name in ping.json
[TEST] Left '.' as it is in REST suites and sections titles (was previously replaced with '_')

With JUnit up to 4.10 there's no way to distinguish between what's shown in IDEs and test ids that need to be unique. A test Description is identified by just a string, that needs to be unique and is shown by IDEs. IDEs have slightly different behaviours when it comes to showing tests and suites titles. Some IDE (e.g. IntelliJ) strips the description on '.', which is why the '.' was replaced in the first place, in order to obtain the same behaviour on all IDEs. On the other hand the information printed out by RestReproduceInfoPrinter was wrong as the file path contained a '_' instead of a '.', which made the string to reproduce a failure useless in some cases. At the end of the day it seems better to just keep the dots and accept slightly different behaviours that are IDE dependent.
[TEST] Added check: test section names must be unique in the same REST test suite

Fixed also three duplicates found
[TEST] Replaced File.separator with '/' as REST test suites can be loaded from classpath, where '/' is needed
[TEST] Added params validation according to REST spec and check whether body is supported or required
[TEST] Removed TODO and custom code now that ping and info are two different apis in the REST spec
[TEST] Wipe templates is now done in a single call using wildcards (compared to cluster state + delete each template)