compiling and running without segfault

From issue 8: 
-----------------

    It would be helpful to add buffer read support besides file reading. I am implementing a file streamer/player at the moment and want to read id3 data directly from the stream. 
There is no library available (i know of) that reads id3 labels from a buffer rather than from a file.

I added methods for being able to use buffers instead of files. The functionality is not broken as all the functions still do the same as they did before. I added new functions for the new functionality. 

Please check out the code and let me know what you think of it.