Added role lookup caching

The has_role? method is called every time the CanCan can? method is called wh ich happens in the navigation and will happen in many other places, so rather than query the database on every call which happens for every user several times on every page, I added a Roles_Cache hash which caches the query in memory.

Future optimizations could be made such as using Ryan Bates' role bitmask solution: https://github.com/ryanb/cancan/wiki/Role-Based-Authorization
Updated seeds file

Students are now only inserted into one section of a course since previously students were being inserted into multiple sections of the same course just like professors.