Switch to ListView + ListAdapter for dialog lists

This pull request is somewhat big, and switches over the list implementation to a ListView + ListAdapter style.

This accomplishes two important things:
* It brings the API to be more in line with a real dialog (think `setAdapter()` and `getListView()`)
* Dramatically improves list scrolling performance due to not inflating all views upfront.

The basic structure of this is that it uses a new in-house adapter called `MaterialDialogAdapter` for first-party list options (single, multi, and regular). For custom adapters (set via `.adapter()` in the `Builder`), it delegates their logic to the user's implementation (like a real dialog!).

This also improved performance of handling callbacks, as now we can retrieve the item directly rather than iterate over the inflated views to find the selected one.

Here's a short screen record going through the list items in the sample: https://www.dropbox.com/s/gs8qn6ytrktrc6d/device-2014-12-01-182852.mp4?dl=0

NOTE: This removes the ItemProcessor API, as it's now unnecessary since users can build the dialog with their own (much more flexible) adapter.

I made a couple other minor changes when I saw them, like c2ad109