Add travis-ci, hopefully without spamming the BC folks

Pretty sure BouncyCastle needs OpenJDK to build and run tests

I don't know how to register the unsigned JCE provider on Oracle JDK,
OpenJDK doesn't seem to check.

try to make travis output clearer

http://stackoverflow.com/a/17942820/438886

The '--info' flag hopefully will stop travis builds from
dying from the no-output-in-10-minutes problem, but weirdly is
also the only thing that makes spongycastle tests pass...

https://twitter.com/rtyley/status/425373078084784128

https://travis-ci.org/rtyley/spongycastle/builds/17299026
Gradle: Remove mail the easiest way...

On Android, the dependencies make supporting bc-mail very hard.

Previously I did an rm -Rf on the 'mail' folder of bc, but actually,
just removing the include from settings is way more Git-friendly for
rebasing.
Gradle: set bc.test.data.home system property

Defining the test data path relative to project

http://www.gradle.org/docs/current/javadoc/org/gradle/api/Project.html#file(java.lang.Object)
Gradle: Specify version of JUnit to avoid unreproducible builds

Another reason for this change is that it stops Gradle from making
unnecessary trips to the network to verify if it has the latest version
of JUnit. ie, on my laptop, even after many successful builds, it was
still possible to get this error if disconnected from the internet:

--
$ gradle test

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all dependencies for configuration ':core:testCompile'.
> Could not resolve junit:junit:4.+.
  Required by:
      spongycastle:core:1.50-b01
   > Failed to list versions for junit:junit:4.+.
      > Could not list versions using M2 pattern 'http://repo1.maven.org/maven2/[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]'.
         > Could not GET 'http://repo1.maven.org/maven2/junit/junit/'.
            > repo1.maven.org
--
Fix BcCertTest to use PEMData class that is within the pkix project

There are at least two identical PEMData classes, this test failed to
compile because it was using the one defined by the 'prov' tests, rather
than 'pkix'.
Format cert-revocation date in GMT to avoid timezone-dependent tests

In my London-based JVM, the date was actually Apr 19th, and the
asserted string in NistCertPathTest did not match.

This is an alternative to this prior pull-request, which just relaxed
the test condition to ignore the date:

https://github.com/bcgit/bc-java/pull/45#issuecomment-31311148
Move core->pkix: FileDaFirmare test resources required by PKIX

core:src/test/data/org/bouncycastle/tsp/test/FileDaFirmare.data

used by

pkix:org.bouncycastle.tsp.test.CMSTimeStampedDataGeneratorTest
Move prov->pkix: tests for OCSP, which is in pkix

The tests use classes from pkix, eg:

prov/src/main/java/org/bouncycastle/ocsp/Req.java
Move core->pkix: PSS test-resourses required by BcSignedDataTest

pkix/src/test/java/org/bouncycastle/cms/test/BcSignedDataTest.java

BcSignedDataTest. testCounterSig
BcSignedDataTest. testEncapsulatedSample
BcSignedDataTest. testSamples
Move core->pkix: test-resources required by org.bouncycastle.eac.test.AllTests

pkix/src/test/java/org/bouncycastle/eac/test/AllTests.java
Move core->prov: test-resources for org.bouncycastle.jce.provider.test.rsa3.RSA3CertTest

prov/src/test/java/org/bouncycastle/jce/provider/test/rsa3/RSA3CertTest.java

org.bouncycastle.jce.provider.test.AllTests > org.bouncycastle.jce.provider.test.rsa3.RSA3CertTest.testI FAILED
org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory$ExCertificateException at RSA3CertTest.java:113
Caused by: java.io.IOException at RSA3CertTest.java:113

org.bouncycastle.jce.provider.test.AllTests > org.bouncycastle.jce.provider.test.rsa3.RSA3CertTest.testJ FAILED
org.bouncycastle.jcajce.provider.asymmetric.x509.CertificateFactory$ExCertificateException at RSA3CertTest.java:113
Caused by: java.io.IOException at RSA3CertTest.java:113
Fix some "no such provider" initialisation errors in tests

Caused by: java.security.NoSuchProviderException: no such provider: BC
	at sun.security.jca.GetInstance.getService(GetInstance.java:83)
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:206)
	at java.security.Signature.getInstance(Signature.java:355)
	at org.bouncycastle.jcajce.NamedJcaJceHelper.createSignature(NamedJcaJceHelper.java:95)
Attempt to fix org.bouncycastle.tsp.test.NewTSPTest

java.security.NoSuchAlgorithmException: MD5WithRSAEncryption Signature not available	at java.security.Signature.getInstance(Signature.java:224)	at org.bouncycastle.x509.X509Util.getSignatureInstance(X509Util.java:190)	at org.bouncycastle.x509.X509Util.calculateSignature(X509Util.java:223)	at org.bouncycastle.x509.X509V3CertificateGenerator.generate(X509V3CertificateGenerator.java:434)	at org.bouncycastle.x509.X509V3CertificateGenerator.generate(X509V3CertificateGenerator.java:412)	at org.bouncycastle.tsp.test.TSPTestUtil.makeCertificate(TSPTestUtil.java:196)	at org.bouncycastle.tsp.test.TSPTestUtil.makeCACertificate(TSPTestUtil.java:155)	at org.bouncycastle.tsp.test.NewTSPTest.testGeneral(NewTSPTest.java:65)
CertPathValidatorTest currently fails with:

    org.bouncycastle.jce.exception.ExtCertPathValidatorException: No CRLs found for issuer "CN=Test CA Certificate"
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1516)
    	at org.bouncycastle.jce.provider.PKIXCertPathValidatorSpi.engineValidate(PKIXCertPathValidatorSpi.java:274)
    	at java.security.cert.CertPathValidator.validate(CertPathValidator.java:279)
    	at org.bouncycastle.jce.provider.test.CertPathValidatorTest.performTest(CertPathValidatorTest.java:281)
    	at org.bouncycastle.util.test.SimpleTest.perform(SimpleTest.java:49)
    	at org.bouncycastle.jce.provider.test.AllTests.testJCE(AllTests.java:23)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at junit.framework.TestCase.runTest(TestCase.java:176)
    	at junit.framework.TestCase.runBare(TestCase.java:141)
    	at junit.framework.TestResult$1.protect(TestResult.java:122)
    	at junit.framework.TestResult.runProtected(TestResult.java:142)
    	at junit.framework.TestResult.run(TestResult.java:125)
    	at junit.framework.TestCase.run(TestCase.java:129)
    	at junit.framework.TestSuite.runTest(TestSuite.java:255)
    	at junit.framework.TestSuite.run(TestSuite.java:250)
    	at junit.framework.TestSuite.runTest(TestSuite.java:255)
    	at junit.framework.TestSuite.run(TestSuite.java:250)
    	at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)
    	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.runTestClass(JUnitTestClassExecuter.java:80)
    	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecuter.execute(JUnitTestClassExecuter.java:47)
    	at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassProcessor.processTestClass(JUnitTestClassProcessor.java:69)
    	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:49)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    	at org.gradle.messaging.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:32)
    	at org.gradle.messaging.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
    	at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
    	at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:103)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:606)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
    	at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
    	at org.gradle.messaging.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:355)
    	at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    	at java.lang.Thread.run(Thread.java:724)
    Caused by: org.bouncycastle.jce.provider.AnnotatedException: No CRLs found for issuer "CN=Test CA Certificate"
    	at org.bouncycastle.jce.provider.CertPathValidatorUtilities.getCompleteCRLs(CertPathValidatorUtilities.java:1224)
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.checkCRL(RFC3280CertPathUtilities.java:1750)
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.checkCRLs(RFC3280CertPathUtilities.java:1986)
    	at org.bouncycastle.jce.provider.RFC3280CertPathUtilities.processCertA(RFC3280CertPathUtilities.java:1506)
    	... 45 more

org.bouncycastle.jce.provider.test.AllTests > testJCE FAILED
    junit.framework.AssertionFailedError: CertPathValidator: Exception: org.bouncycastle.jce.exception.ExtCertPathValidatorException: No CRLs found for issuer "CN=Test CA Certificate"
        at junit.framework.Assert.fail(Assert.java:57)
        at junit.framework.TestCase.fail(TestCase.java:227)
        at org.bouncycastle.jce.provider.test.AllTests.testJCE(AllTests.java:32)
delete mysterious failures

junit.framework.AssertionFailedError: Exception thrown: java.lang.NullPointerException:
null
	at junit.framework.Assert.fail(Assert.java:57)
	at junit.framework.TestCase.fail(TestCase.java:227)
	at org.bouncycastle.pqc.jcajce.provider.test.FlexiTest.fail(FlexiTest.java:64)
	at org.bouncycastle.pqc.jcajce.provider.test.KeyPairGeneratorTest.performKeyPairEncodingTest(KeyPairGeneratorTest.java:43)
	at org.bouncycastle.pqc.jcajce.provider.test.McElieceCCA2KeyPairGeneratorTest.testKeyPairEncoding_9_33(McElieceCCA2KeyPairGeneratorTest.java:34)