Minor refactoring in:
    * all the StructuredModels
    * all the StructedOutputMachines
to provide support for sparse joint feature vector
Modified all the StructuredOutputModels to include
get_sparse_joint_feature_vector() method.
Implemented CHashedMultilabelModel class to faciliate feature hashing in
multilabel scenario.
Added unit-test for CHashedMultilabelModel
add_to_dense() method added in SGSparseVector for adding a dense vector
Minor refactorings and changes in:
    * all the StructuredOutputModels
    * all the StructuredOuputMachines
to remove redundant methods and intializations
Minor bug fixes in HashedMultilabelModel
Minor modification in MulticlassModel
added modular interfaces for the implemented multi-label models
added checks in the structured machines
Merge branch 'hashed-mutlilabel' of https://github.com/abinashpanda/shogun into hashed-mutlilabel
minor modifications in CResultSet and in all the strutured models
modified constructor of CResultSet; added checks in HashedMultilabelModel::argmax() method
Merge pull request #2320 from abinashpanda/hashed-mutlilabel

Implemented HashedMutlilabelModel for feature hashing