Refactoring vector_ref
Added int_vector_instruction
Refactor code to use string_cref<T>, string_mref<T>, int_vector_cref<T>, int_vector_mref<T>

Here is the new typedefs for the cref classes of primitive types

typedef int_cref<int32_t> int32_cref;
typedef int_cref<uint32_t> uint32_cref;
typedef int_cref<int64_t> int64_cref;
typedef int_cref<uint64_t> uint64_cref;

typedef string_cref<char> ascii_string_cref;
typedef string_cref<utf8_char> unicode_string_cref;

typedef vector_cref<unsigned char> byte_vector_cref;

typedef int_vector_cref<int32_t> int32_vector_cref;
typedef int_vector_cref<uint32_t> uint32_vector_cref;
typedef int_vector_cref<int64_t> int64_vector_cref;
typedef int_vector_cref<uint64_t> uint64_vector_cref;
 
All mref classes follow the same pattern.
Update documentation to reflect the change for previous commit.
Merge branch 'int_vector'