Hi Rama,
Good questions. Here's a high level answer to both:
1 - Difference between Props and eVars:
You've got it half-right already! There are two *main* differences between props and eVars.
Difference #1 - eVars can be set to persist past the current hit. Props expire with that request. This is useful for capturing something like "Login status", which may be set to "Logged In" after successful login, but needs to persist throughout the remainder of the visit since the user continues to be logged in. If you were sending login status as a prop, you'd need to send it on every single image request, rather than just the first one. In the Analytics admin console, we call this "Expiration". By default, eVars expire at the end of the visit, but this can be adjusted to end of the page view, never, firing of a custom event, or even a number of days.
Difference #2 - eVars can also be set to have unique attribution across multiple values. In the Login Status example, when the visitor first comes to the site, the Login Status will be set to "Anonymous". After login, the eVar value will need to be updated to "Logged In." So if that same user then makes a purchase, which value of the eVar (Anonymous or Logged In) should credit for that revenue be given? In this case, Logged In, obviously. eVars give us the option to set an Allocation (as termed in the admin console) to either First Touch, Last Touch, or Linear.
A couple of other minor differences: eVars can be enabled for Merchandising (lengthy explanation here: Merchandising eVars), or as Counter eVars (Counter eVars ).
2 - AppMeasurement.js is the updated version of s_code.js, a legacy set of code. More details here: About AppMeasurement for JavaScript
Hope that helps!