It's not all that complex to implement. In your game code, replace all your key pressed / key is down etc. events with the similar "key code" event. Use an array or even variables to store the keycodes and reference the relevant variables or the array values in those events.
To remap the key codes, create a system where when prompted the user presses the key that they want to map, and then set the relevant variable or array value to Keyboard.LastKeyCode.
Example:
Var_DownKey=40
On Keycode (Var_DownKey) pressed - Move down
---
//for rebinding
On any key pressed - Set variable (Var_DownKey) to Keyboard.LastKeyCode
;