Added ability to specify an exception for setDataSource(). Abstracted data source spec into an opaque ID class that will be reused by ShadowMediaPlayer in a future commit.
Merge pull request #1415 from kriegfrj/md-retriever-setdatasource-exceptions

Custom exceptions for MediaMetadataRetriever.setDataSource.
Delete unnecessary ShadowKeyEvent.

This implementation got in the way of KeyEvent dispatch logic (which
uses the mAction and mKeyCode fields, which weren't being set by the
shadowed constructor). The ShadowKeyEvent wasn't exposing any behavior
that isn't already implemented by KeyEvent and/or ShadowInputEvent, so
deleting it and using the real constructors seems to be the sensible
option.

This keeps the test around, but renames it to InputEventTest, since
that's where the behavior lies that it was actually testing.
Merge pull request #1416 from tec27/delete_keyevent

Delete unnecessary ShadowKeyEvent.
Remove empty onSaveInstanceState in ShadowActivity.

This implementation being empty meant that the actual Android
onSaveInstanceState code was never being run. This code does run fine
with current Robolectric implementations, and I suspect was only
overridden for Robolectric 1.0's sake. Without running this actual code,
View and Fragment state saving (and therefore later restoration) does
not work properly and cannot be tested.

Fixes #1280.
Merge pull request #1417 from tec27/activity_statesaving

Remove empty onSaveInstanceState in ShadowActivity.
Remove ShadowActivity#onKeyUp and use real Android code instead.

Prior to this change, onKeyUp had a simplified copy of Activity#onKeyUp
which neglected to check whether the KeyEvent was being tracked (which
could result in divergent behavior in tests). It also called
onBackPressed directly which, due to how Robolectric's bytecode
replacement works, called directly to ShadowActivity#onBackPressed
rather than moving through the proper class hierarchy. In effect, this
meant that if an Activity had its own implementation of onBackPressed,
this implementation would be ignored and ShadowActivity's would be used
instead.

Since ShadowActivity#onKeyUp was removed, the associated shadow methods
for checking whether or not onKeyUp was called have also been removed.
Tests should check for state changes (like the activity being finished)
instead of needing to use these methods.
Merge pull request #1418 from tec27/onkeyup_override

Call the real onKeyUp code in ShadowActivity#onKeyUp.
Update the deploy snapshot script to deploy core shadows.
Move remaining annotations to annotations module.
Move Robolectric fakes into a org.robolectric.fakes package.
Initial pass at supporting Lollipop.
Reduce the amount of logging from the Javadoc plugin.
Fix stack map generation for Java 7 when re-writing Android classes.
Exclude classes from shadowOf generation that do not exist in the Android SDK.