Update Scala to 2.11.4, centralize build files
Merge branch 'scala-2.11.4'

Conflicts:
	build.sbt

Conflict was resolved by deleting build.sbt and adding -feature flag to
project/build.scala
README: Explain how to create a stand-alone compiler jar
Merge pull request #36 from soc/topic/better-readme

README: Explain how to create a stand-alone compiler jar
Exit the main application with a status code.

Current codes are 0 for success, 1 for option parsing error, and 2 for
compilation failure.
Merge pull request #38 from jspam/017-exit-code

Exit the main application with a status code.
Added identifier cache.

Identifiers are now cached for faster comparison. Note that the equal's
method of case classes will first check for reference equality, so
Identifier.equals doesn't have to be overwritten.
Merge pull request #39 from Stoeoef/dev2

Added identifier cache
Embrace scala.util.parsing.input

* Lexer: Use StreamReader instead of Stream[Char] for automatic position
  tracking
* Use Position trait throughout the program

Replace StreamReader with mutable implementation
Lexer: Inline lexSymbol into lexToken to make them tail recursive
Eliminate any sources of buffering the whole program

* replace Streams with Iterators
* findings and success are now dependent on the current iterator position
  * therefore have to rearrange evaluation in unit tests
* make Lexer.dumpResults() lazy line-based