Allow - ~ and . in course, branch, & block ids

@chrisndodge @cahrens Please review. This is blocking Chris.