Added the display type.

Survey items may now define a display type to indicate how they should be displayed to a user. For example, a number prompt could be displayed using a picker or a slider.
Removed the ability to have custom choices.

A survey creator can no longer allow custom choices.

Closes #680
Added application information to streams.

Streams may now list some application information to help onboard a user with an application that corresponds to a particular stream. The stream definition has been updated to have a field "apps" whose value is an array of AppInformation objects. Every AppInformation object must specify a "platform" (e.g. "android", "ios", "windows", etc.) and an "app_uri" which can be used to direct the user to install the application for the respective platform. The "platform" value is not validated to allow for unknown platforms. Optionally, the AppInformation may also include a "authorization_uri" that can be used to direct a user to authorize ohmage to read the user's data.

Closes #679
Updated how lists of elements were deserialized.

Due to type-erasure, Jackson could not properly deserialize parameters like List<MyType>. Instead, it was being deserialized as List<Map>, which would end up throwing a ClassCastException when any part of the code tried to iterate over the elements. This has been "fixed" (circumvented) by declaring the parameter as MyType[]. This prevents the type-erasure and allows Jackson to properly deserialize it.
Updated the remote activity prompt.

The remote activity prompt no longer uses a min and max runs. Instead, it requires a Concordia definition which defines what the response data should look like. Of course, this still follows the Concordia principles, so the response may have additional, undefined fields.

Closes #684