Skip the frills of luxury resorts for a stay with soul in these small, charming and affordable three-star hotels with five-star reviews.