Implemented HashedMutlilabelModel for feature hashing

@tklein23 I was thinking of something else. If we are going to convert these sparse joint feature vector into a dense one, then there was no need of creating them at first place. For example, if we are going to have ```2**20 == 1M``` features, then a simple addition would be reading ```4MB``` of data. Instead of that we can add a method in ```SGSparseVector``` similar to ```CSparseFeatures::add_to_dense()``` like
<pre><code>
SGSparseVector::add_to_dense(float64_t alpha, float64_t* dense_vec, int32_t dense_vec_dim)
</code></pre>

This would not require to convert a sparse vector to dense and we can add them without needing any extra memory. Furthermore, it would also make the implementation more clean. Any suggestions?