Added attribute readers and fixed remainder in LexingError.

The accessors are useful for printing custom error messages. 

I also changed scanner.post_match for scanner.rest. post_match returns nil if there is no valid match before calling it, and rest returns the rest of the string after the scanner pointer.