Filetype, desc, icon -- third try

Some test cases:

```python
test_filenames = ('ignore.me/Readme.another.dead.fish.upon.the.landing',
                  'ignore.me/myfile.html.gz',
                  'ignore.me/myfile.htm.old',
                  'ignore.me/README.macosx',
                  'ignore.me.dat/ignore.dirname',
                  'ignore.me/trailing.period.',
                  'ignore.me/trailing.slash/',
                  '', None, 0, [], {})
for filename in test_filenames:
    print('{} ==>\n\t{}'.format(filename, get_file_info(filename)))
print('Tests complete.')
sys.exit()
```