InputCommon: Split Device stuff out The ExpressionParser needs this to be out of here to prevent issues with cyclic references.