Added a checkstyle xml

**This should be an ongoing discussion and not merged immediately!**

## Overview
This PR adds checkstyle rules based on the default ones with the AE2 specific formatting as well as a more refined import order definition.

## Import order
I have added a more project specific one.
The order in general:

1. java
2. com/org/io (usually large libs, but did not encounter io, could maybe be dropped)
3. net (minecrat and forge mainly)
3. cpw (...)
4. * wildcard, it catches anything else. Like mods.*, buildcraft.* etc
5. appeng

## Rules to highlight (current violations, not default, etc)
### Header
Plain simple, it enforces every .java file to contain the copyright.txt as header.

### All rules related to formatting
Rules like conditionals always need {}, { on newline, etc are still creating a large number of violations.
I would estimate about 50%. **But** (at least eclipse) can solve them automatically.

### Naming conventions
These are probably the second largest one and cannot really be solved automatically.
Mostly these are variables name like `int ThisIsAnInteger = 1` instead of `int thisIsAnInteger = 1` or parameters starting with `_` (Mostly used to prevent hiding fields, but that is another violation).
I see these as the most time consuming ones, but at least java refactoring works great in this cases.

##### PascalCase naming
* Classes
* Interfaces

##### camelCase naming
* Fields
* Variables
* Methods

##### CAPITALIZATION_NAMING
* Constants (public static final)


### Other notable ones
* Hidden fields (same parameter as already present field)
* Final parameter/fields (make everything immutable if possible)

## Possible rules to consider adding
### indentation
I would highly suggest it to keep a consistent formatting.
By itself this rule allows for tabs as well as spaces to indent the code.
**But** checkstyle cannot enforce using tabs. Only not using tabs.
So it is either use spaces or have the problem of dealing with mixed spaces and tabs.

### import order
Also would suggest it, but the general import order should be finalized before adding it.

## Disabled rules
### empty blocks
This rule could be considered to be used, as empty blocks should be avoided.
Currently these are mostly empty catch blocks, so adding at least some logging could be an idea.
On the other hand, all the launchers don't really care about severity levels, so logs might get spammed to much.

### avoid ternary operators
Probably not worth keeping.

## Gradle Integration
Currently not included, but this should be on a high priority.
But i would suggest to set `ignoreFailures true` either until every violation is resolved **OR** a fixed date like 2014-11-01 is reached.