Organize imports with shared IDEA configuration

Add .idea/codeStyleSettings.xml with explicit settings for each
2nd-level package used within ethereumj, adding a separator between
each (unfortunately there is no other way to gain this level of control
in IDEA).

Imports are generally in alphabetical order, with two key exceptions:

 - org.ethereumj.* imports are always sorted at top, to simplify the
process of seeing how one ethereumj type relates to all others. This is
especially useful in the practice of avoiding cyclic package
dependencies.

 - java.* and javax.* and sun.* imports are always sorted at bottom.

Wildcard imports are used for static imports whenever two or more
members of the same type are statically imported, but wildcards are
never used for non-static imports. This policy of explicitness helps
identify classes that are too "fat", i.e. have too many dependencies on
other types.

The root .gitignore file has been updated to allow
.idea/codeStyleSettings.xml, so as to automatically share it with other
team members. Any changes made to import organization settings will be
reflected in this file and should be checked in.
Remove redundant type casts
Remove unnecessary boxing and unboxing
Replace for loops with foreach where appropriate
Replace explicit types with <> syntax
Upgrade to JDK 8 compatibility

As of this commit, JDK 8 or better is required to compile or run against
ethereumj.
Replace anonymous types with lambdas and method refs
Collapse foreach loops using Stream#collect
Collapse foreach loops using Iterable#forEach