Introducing our own build system

The first in a series of commits introducing our own build system for
the kafka project based on calling scalac and a set of simple Makefiles.
This commit contains the toplevel Makefile and the core Makefile
Fix some bugs, perf Makefile introduced

We now compile java files as well producing the relevant .class files.
perf module now compiles ok as well
examples, perf, contrib Makefiles

Also add clean targets in Makefiles and get ready for install targets
following in a later commit
First draft of release capable build system

Examples project is the first one creating a usable .jar file
Also be a little bit pedantic in some case about some commands
and declare them in variables in toplevel Makefile

Note: At some point incubation will be over for kafka. Will need to fix
the expression then
jar files produced for examples, perf, contrib

And fix minor bugs here and there
install targets ready

Install targets by default go to /usr/local/share/java, packaging
system will probably override that
Add extra manifest data for core kafka jar

Through the use a jar manifest file
Use system jars if possible

If system jars can be found in prefix, use them
system procured jar files preferred over ours
Import all the non system provided jars

We are talking about debian/ubuntu system provided jars

Note: jopt-simple is provided by precise, but version 3.2 seems to
lead to some errors during compilation
Be somewhat more friendly with classpath

CLASSPATH variable is meant to be overriden more by the caller. Some
sane defaults are discovered but they should not be relied on too much.
Also use the variable as is meant to be and now by passing the
-classpath option to all calls.
Avoid redefining CLASSPATH, PREFIX if passed by caller
created jars in PREFIX/share/kafka

Moving them from PREFIX/share/java as dictated by the Debian policy
installing configuration files as well
allow caller to set our version

The version discovery system is rather naive and will fail in many
cases to correctly identify the version. Since this is not trivial to
fix we allow the caller to override version and be done with it