Merge pull request #234 from gtch/master

Added timestamp to log pane
Added simple code that takes a screenshot approximately once a second and saves it with the log.
Switched to Maven Standard Directory Layout

Moved the source files around so that they match the Maven Standard Directory Layout. This should make it easier to create completely automatic builds for both the Windows and OS X versions. No code changes in this checkin, I just moved files and reconfigured the paths.

Note that I didn't move the src/recentchanges and src/version because the existing updater is checking those specific locations. The updater itself will need to be updated with new locations before those files are moved.

See also https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
Major overhaul of the screen detection to improve reliability

I've rewritten much of the screen detection code and recalculated the identifying pixels that should make screen detect more robust — and thus stop the recent problems some players have experienced with their games not being recorded due to missing deck or hero information, etc.

Some key changes:
- Screens are now identified by an enum `Screen`, and all the information needed to identify each screen is stored there so it's easy to find.
- All screens now check the same pixel locations, instead of each screen having its own set of unique pixels to check. This makes it easier to debug and reduces the risk that the HearthStats.net Uploader incorrectly matches multiple screens at once
- Simpler pixel check code makes the analysis much faster (though more work needs to be done to reduce the screenshot time, which is more significant)
- Added a JUnit test `ScreenAnalyserTest` which analyses a folder of screenshots and outputs an interpretation of each screen into a set of HTML files. This makes it much easier to debug screen detection errors because it allows you to run the analysis repeatedly until every screen is detected correctly.
- And, most importantly, I used that to test every screen and tweak all the numbers to make detection much more accurate :smile:

Some detection is still less than perfect, for example the victory & defect detection could use some work. I'll follow up with improvements to those hopefully in the new few days.

Also, so far this has only been tested on Mac OS X. Further tweaks may be needed for Windows before producing an official release of the HearthStats.net Uploader.
Fixed bug in ScreenAnalyserTest that was cutting off the last page of test results
Fixed assertion warning that was occuring during Java compile
Merge branch 'master' into dev-screenshot

Conflicts:
	src/net/hearthstats/HearthstoneAnalyzer.java
Improved detection of Hearthstone screens

- faster detection of casual and ranked mode on the play screen
- much less likely to mistakenly think the Cancel button on Finding Opponent has been clicked on Mac OS X
Improved detection of ranked mode

Fixed the logic on checking for ranked mode so that it is correctly detected when playing a ranked game immediately after another ranked game, which previously could cause the mode to be [undetected]
Refactored OCR code

Moved the OCR code into a new set of classes that make it easier to share common code between the different types of OCR (ie rank, opponent name, and more in the future...). The refactoring also makes it easier to run automated tests so that we can improve the accuracy of OCR.
Automated tests for OCR

Added some JUnit tests for OCR. These will automatically run OCR on the provided rank level and opponent name images to see if they are interpreted correctly. At the moment some of the tests are failing, so that means there's some work to do on the OCR to make it more accurate! :flushed: