refactored classes to add missing features

Wanted to fix some of the issue (character categories, selects for series, song categories, etc) but kind of ended up refactoring quite a lot. Sorry about that. I never worked with reactjs before so sorry if it's not the standard patterns; haven't had times to read more then the basic docs.