Strain Gradient Plasticity: Theory and Implementation