Feature/permissions

Cada paciente compartido (SharedPatient) tiene un campo llamado access priviliges. Este campo es un entero que indica todos los posibles permisos que tiene el usuario.

Para dividir esta funcionalidad hay una clase ```ByteDecodeEncoder``` que se encarga de encodificar un string que representa 31 bits a un entero representando cuales bits están prendidos y cuales apagados.

Los últimos 3 bits (...xxx) indican permisos para ver información de un paciente.
Los siguientes últimos 3 (...yyy...) indican permisos para editar información de un paciente.

Las clases Permission, PatientViewInfoPermission y PatientUpdateInfoPermission se encargan de enforzar estos requerimientos