Bangladesh has turned an 18-run first-innings lead against the West Indies into a competitive 211-run advantage on day three of the second test in Kingston.