Add ifloor, iceil and itrunc to BigFloat (#3040)

They convert to a Int64 if it fits, otherwise to BigInt.
Change ifloor/iceil/itrunc to always return a BigInt
Add typed versions of ifloor, iceil and itrunc

It also includes extensive changes to the conversion of both BigInt
and BigFloat in order to make them more general and to start raising
errors when trying to convert values bigger than Clong/Culong.
Added section on how to include new code in base library.

Also moved section on contributing a package up, to make it more visible. That makes it clearer that it is the preferred method of contributing new functionality.
Merge pull request #3041 from andrioni/master

Adds iceil, ifloor and itrunc to BigFloat
Merge pull request #3051 from tlycken/contrib-base

RFC: Added section on how to include new code in base library.
Note that any additions or changes to base should be discussed on
the list or in a github issue.
ranges: allow zero-step ranges without colon syntax [closes #3053]
A quine program (written by Leah Hanson).
Fix a BigFloat display error

If the default buffer wasn't enough, the function creates a bigger
buffer big enough to hold the string, but I wasn't accounting for
the null character.
Add eps(::Type(BigFloat))

The implementation is very direct, thanks to the availability of
nextfloat.
Add a conversion method from BigInt to FloatingPoint

This will be very useful in the future, as it solves #2930 for
BigInts (`float(x)` uses `convert(FloatingPoint, x)`), so
float(BigInt(1)im) now works.
Merge pull request #3059 from andrioni/eps

BigFloat string and eps, close #3056
probably fix #3055
generic fallbacks for the 4 stooges itrunc, iceil, ifloor, iround (part of #3040)
FloatingPoint->Int128 conversion (existing code mostly works for BigFloat too)
more BigFloat to int conversions
fix a couple other BigFloat issues
Merge pull request #3060 from andrioni/convert

Add a conversion method from BigInt to FloatingPoint
Merge branch 'master' of github.com:JuliaLang/julia

Conflicts:
	base/mpfr.jl
Change `using Test` to `using Base.Test` in the tutorial
Merge pull request #3063 from andrioni/patch-2

Change `using Test` to `using Base.Test` in the tutorial
Merge remote-tracking branch 'upstream/master'