An Optimization Framework For Two-Tier Cellular Network Resource Allocation And Handover