Re-PR Added support photo messages, audio messages and video messages

Hi, @jessesquires. 
Since I added a lot of new code to `develop` branch to adapt my project, so I think you review the `media` branch would be better.

For more information, see #392.