context.report now takes optional location

Rules reporting a violation may now pass an optional location object
containing the line and column numbers. This should improve the
reporting of error locations in general.

Additionally, the ability to test error line number reporting was added
to the eslint tester.
The semi rule now reports correct line number

The semi rule now reports the node's end location as the error
location, as it should.

Fixes #451
Merge pull request #461 from iancmyers/semi-fix

Fix error location for semi rule (fixes #451)