Portmeirion, Gwynedd has been named among the UK's most charming coastal towns by Lonely Planet.