Simplify Poisson Binomial distribution

In Ex Nihilo, rewards from hammering are expressed as floating point
probabilities, while rewards from sieving are expressed as integer
rarities (essentially odds). I tried to unify these two in order to
simplify, however, this complicated the distribution (for calculating
probabilities).

There is a very simple relation between the probabilities and the odds,
that is however susceptible to a floating point error. In my
investigations, converting an int to a float, and back to an int, is
safe for all non-zero integers greater than -5939742 and less than
5933443. So for all practical purposes it won't be a problem.
Make the PMF a list of pairs instead of map

When making use of the Poisson Binomial distribution PMF, I need access
to both the integer input and it's corresponding probability; an
excellent use case for a map. However, I also found that I need to be
able to access elements by an index; an excellent use case for a list.
So I compromised and went with a list of pairs (or 2-tuples).

I'm not necessarily convinced that a pair type is really ideal, but it's
quick and easy and I already had a generic implementation. I really
should probably be using specific types, but naming things is one of the
two hard things in computer science (the others being cache
invalidation, and off by one errors).
Change average to the more accurate term mean
Delay building distribution; fixes #2

If we wait to build the probability distribution, then we can modify the
probabilities before we calculate the PMF. In particular, this allows us
to display the correct outcomes for a fortune enchanted hammer.
Factoring in the luck multiplier, exposed a minor bug, namely that
probabilities should never be greater than 1, so we take that into
account when calculating the PMF.

We also switch to displaying odds against, instead of odds for in order
to make it more obvious that the numbers are odds and not probabilities.
Register only one instance of each recipe handler
Find super type of recipe handlers

The recipe handlers for sieving and hammering were nearly identical.
We've fixed that defining a super type to contain all the identical
code.
Add I18n support; closes #3

Allows most user facing text to be translated.
Make use of git tags for versioning

I had intended to be using git tags for versioning, but had messed that
up. Now, I'm actually doing that. We're also now making more use of mod
constants to DRY up the code a bit.

I also restructured the assets.
Setup libs and build.properties

The Chicken Bones libraries can be gotten automatically from their ivy
repository; we now make use of that. We also emulate maven's provided
scope for dependencies, for those which should be in the compile time
classpath, but not the runtime classpath.

We also add a build.properties configuration for specifying some version
numbers.
Stop cycling barrels when one is 'used'; fixes #1

If the 'use' key is pressed on a barrel, it now shows only that barrel
instead of cycling through all valid barrels. Hammers already did this
and sieves started doing this in 22bdd5a.