Fix unicode warnings in practracker using python 2

When I run practracker using python 2, I get the following unicode warning:

$ scripts/maint/practracker/practracker.py --regen-overbroad
Traceback (most recent call last):
  File "scripts/maint/practracker/practracker.py", line 324, in <module>
    main(sys.argv)
  File "scripts/maint/practracker/practracker.py", line 268, in main
    for item in filt.filter(consider_all_metrics(files_list)):
  File "/Users/hyper/dev/tor/scripts/maint/practracker/problem.py", line 147, in filter
    for item in iter(sequence):
  File "scripts/maint/practracker/practracker.py", line 110, in consider_all_metrics
    for item in consider_metrics_for_file(fname, f):
  File "scripts/maint/practracker/practracker.py", line 134, in consider_metrics_for_file
    for item in consider_function_size(fname, f):
  File "scripts/maint/practracker/practracker.py", line 91, in consider_function_size
    for name, lines in metrics.get_function_lines(f):
  File "/Users/hyper/dev/tor/scripts/maint/practracker/metrics.py", line 58, in get_function_lines
    if line.startswith("}"):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 22: ordinal not in range(128)
Exit 1

We can fix this issue by using the codecs module to open files in unicode mode.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information